“Linphone”库Android中的空指针异常

时间:2015-03-07 12:07:17

标签: android eclipse nullpointerexception linphone

我创建了一个Android应用程序,因为我想使用“Linphone”库进行语音和视频通话。

我成功下载并设置了库项目,但是当我运行项目时,在“LinphoneService.java”文件中得到以下错误。

我在这行中得到错误:

LinphoneCoreFactory.instance().setLogCollectionPath(
            getFilesDir().getAbsolutePath());
LinphoneCoreFactory.instance().enableLogCollection(
            !(getResources().getBoolean(R.bool.disable_every_log)));

例外:

03-07 17:35:41.400: D/AndroidRuntime(8217): Shutting down VM
03-07 17:35:41.400: W/dalvikvm(8217): threadid=1: thread exiting with uncaught exception (group=0x417e4da0)
03-07 17:35:41.400: E/AndroidRuntime(8217): FATAL EXCEPTION: main
03-07 17:35:41.400: E/AndroidRuntime(8217): Process: org.linphone, PID: 8217
03-07 17:35:41.400: E/AndroidRuntime(8217): java.lang.RuntimeException: Unable to create service org.linphone.LinphoneService: java.lang.NullPointerException
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2824)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.app.ActivityThread.access$1900(ActivityThread.java:172)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1390)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.os.Looper.loop(Looper.java:146)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.app.ActivityThread.main(ActivityThread.java:5653)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at java.lang.reflect.Method.invokeNative(Native Method)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at java.lang.reflect.Method.invoke(Method.java:515)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at dalvik.system.NativeStart.main(Native Method)
03-07 17:35:41.400: E/AndroidRuntime(8217): Caused by: java.lang.NullPointerException
03-07 17:35:41.400: E/AndroidRuntime(8217):     at org.linphone.LinphoneService.onCreate(LinphoneService.java:140)
03-07 17:35:41.400: E/AndroidRuntime(8217):     at android.app.ActivityThread.handleCreateService(ActivityThread.java:2814)
03-07 17:35:41.400: E/AndroidRuntime(8217):     ... 10 more

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,为了解决这个问题,你的libs文件夹必须位于app / src / main中。此外,如果您使用的是Android Studio,则必须将libs文件夹称为jniLibs。

希望这有帮助。

答案 1 :(得分:0)

尝试更改:

public static final synchronized LinphoneCoreFactory instance() {

    try {

        if (theLinphoneCoreFactory == null) {

            Class lFactoryClass = Class.forName(factoryName);

            theLinphoneCoreFactory = (LinphoneCoreFactory) lFactoryClass.newInstance();

        }

    } catch (Exception e) {

        System.err.println("Cannot instanciate factory ["+factoryName+"]");

    }

    return theLinphoneCoreFactory;

}

要:

public static final synchronized LinphoneCoreFactory instance() {

    try {

        if (theLinphoneCoreFactory == null) {

            theLinphoneCoreFactory = new LinphoneCoreFactoryImpl();

        }

    } catch (Exception e) {

        System.err.println("Cannot instanciate factory ["+factoryName+"]");

    }

    return theLinphoneCoreFactory;

}

使用:link导入本机库。将所有目录和文件从this file复制到项目的/ libs /