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'