java - “E/AndroidRuntime: FATAL EXCEPTION: main”在我尝试创建 SipFactory 实例时引起
问题描述
我正在尝试在 android 中实现 Jain-SIP。一旦到达以下行,它就会给我一个“E/AndroidRuntime: FATAL EXCEPTION: main”错误。
SipFactory sipFactory = SipFactory.getInstance();
您知道可能导致此错误的原因吗?
完整的错误如下。
07/22 16:12:25: Launching app
$ adb install-multiple -r -t -p com.example.jainsiptestapplication /home/kubra/Documents/Android Applications/JainSipTestApplication/app/build/intermediates/split-apk/debug/slices/slice_1.apk
Split APKs installed in 422 ms
$ adb shell am start -n "com.example.jainsiptestapplication/com.example.jainsiptestapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 9814 on device Pixel_2_API_29 [emulator-5554]
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/testapplicatio: JIT profile information will not be recorded: profile file does not exits.
I/chatty: uid=10154(com.example.jainsiptestapplication) identical 10 lines
W/testapplicatio: JIT profile information will not be recorded: profile file does not exits.
I/InstantRun: starting instant run server: is main process
W/testapplicatio: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
W/testapplicatio: Accessing hidden method Ljavax/sip/SipFactory;->getInstance()Ljavax/sip/SipFactory; (blacklist, linking, denied)
W/testapplicatio: Accessing hidden method Ljavax/sip/SipFactory;->getInstance()Ljavax/sip/SipFactory; (blacklist, linking, denied)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.jainsiptestapplication, PID: 9814
java.lang.NoSuchMethodError: No static method getInstance()Ljavax/sip/SipFactory; in class Ljavax/sip/SipFactory; or its super classes (declaration of 'javax.sip.SipFactory' appears in /system/framework/ext.jar)
at com.example.jainsiptestapplication.Shootist.init(Shootist.java:19)
at com.example.jainsiptestapplication.MainActivity.onCreate(MainActivity.java:13)
at android.app.Activity.performCreate(Activity.java:7783)
at android.app.Activity.performCreate(Activity.java:7772)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3235)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
Application terminated.
我正在使用的 jain-sip 实现是实现 'javax.sip:jain-sip-ri:1.2.327' 我正在使用 Android Studio。
我的 MainActivity.java 代码如下。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Shootist().init();
}
}
射击类在下面。
public class Shootist implements SipListener {
public void init() {
SipFactory sipFactory = SipFactory.getInstance();
}
@Override
public void processRequest(RequestEvent requestEvent) {
}
@Override
public void processResponse(ResponseEvent responseEvent) {
}
@Override
public void processTimeout(TimeoutEvent timeoutEvent) {
}
@Override
public void processIOException(IOExceptionEvent exceptionEvent) {
}
@Override
public void processTransactionTerminated(TransactionTerminatedEvent transactionTerminatedEvent) {
}
@Override
public void processDialogTerminated(DialogTerminatedEvent dialogTerminatedEvent) {
}
}
Jain SIP 类在常规 Java 上运行没有问题(我使用 IntelliJ)。一旦我尝试在 Android 中使用它们,我就会遇到错误。我在网上读到,问题可能是 android 不能很好地与 log4j 一起工作,而 jain-sip 库使用 log4j。
解决方案
推荐阅读
- c - 为什么编译器在读取文本文件时会分配多余的内存?
- firebase - 在 ListView 中从 Firebase 获取数据时出现重复
- typescript - 打字稿替换对象键和值的通用
- docusignapi - 使用 API 使用 XML 标签的文档签名中的自定义消息
- python - 当输入的值实际上是整数时,为什么输出返回 this 不是整数?
- python - 如何使用 SimpleITK 的 ExpandImageFilter?
- react-native - 如何在具有选项卡导航器 React Native 的屏幕中处理后退按钮
- django - 如何正确设置 Facebook 分享链接缩略图和文本
- excel - 如何确定连续值组?
- machine-learning - 当我拟合模型时,它在创建模型后不显示超参数