java ice4j конфликтует с пакетом nist-sdp

В моем проекте приведенный ниже пример кода работает без пакета ice4j:

import javax.sdp.*;
public class Hello 
{
    public static void main(String[] args) throws Throwable
    {
        SdpFactory factory = SdpFactory.getInstance();
    }

}

Но если я включу пакет ice4j, как показано ниже:

apply plugin: 'java-library'

repositories {
    google()
    jcenter()
}
jar {
    manifest {
        attributes 'Main-Class': 'Hello'
    }
    from {
        configurations.compile.collect{it.isDirectory()?it:zipTree(it)}
    }
}
dependencies {
    compile group: 'javax.sdp', name: 'nist-sdp', version: '1.0'
    compile group: 'org.jitsi', name: 'ice4j', version: '1.0'
}

sourceCompatibility = "7"
targetCompatibility = "7"

Добавьте пакет ice4j в gradle, затем соберите без проблем, но если запустить с командой ниже:

java -jar build/libs/Hello.jar

Сообщение об ошибке сообщается:

Exception in thread "main" java.lang.NoSuchMethodError: javax.sdp.SdpFactory.getInstance()Ljavax/sdp/SdpFactory;
    at Hello.main(Hello.java:7)

Почему компиляция передается во время выполнения не может найти метод?

1 ответ

Используйте ниже код вместо этого:

SdpFactory factory = new NistSdpFactory();//SdpFactory.getInstance();

Gradle изменить на:

compile group: 'org.opentelecoms.sdp', name: 'java-sdp-nist-bridge', version: '1.1'
Другие вопросы по тегам