2015-03-07 1 views
0

Я создал приложение для Android, которое я хочу сделать голосовым и видеозвонком, используя библиотеку Linphone.Исключение Null Pointer в библиотеке Linphone Android

Я успешно загрузил и установил проект библиотеки, но когда я запустил проект, получите следующую ошибку в файле 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 
+0

Попробуйте загрузить источник и изучить строку с ошибкой – TameHog

+0

@TameHog, см. Обновленный вопрос –

+0

Я думаю, что это как-то связано с получением ресурсов(). GetBoolean(). Или этот вызов instance(). Попробуйте добавить несколько операторов регистрации, чтобы узнать, какой из них равен нулю. – TameHog

ответ

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; 

} 

To:

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/

+0

Он приносит эту ошибку: на org.linphone.LinphoneService.onCreate (LinphoneService.java:141) 03-07 18: 17: 58.788: E/AndroidRuntime (17765): \t at android.app.ActivityThread.handleCreateService (ActivityThread. java: 2814) 03-07 18: 17: 58.788: E/AndroidRuntime (17765): \t at android.app.ActivityThread.access $ 1900 (ActivityThread.java:172) 03-07 18: 17: 58.788: E/AndroidRuntime (17765): \t на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1390) 03-07 18: 17: 58.788: E/AndroidRuntime (17765): –

+0

Зачем? – TameHog

+0

03-07 18: 17: 58.788: E/AndroidRuntime (17765): java.lang.UnsatisfiedLinkError: Не удалось загрузить linphone-armeabi-v7a из загрузчика. Dalvik.system.PathClassLoader [dexPath =/data/app/org.linphone -6.apk, libraryPath =/data/app-lib/org.linphone-6]: findLibrary возвращается null –

2

У меня была такая же проблема. Исправить эту папку с libs должна быть внутри приложения/src/main. Также, если вы работаете с Android Studio, ваша папка libs должна называться jniLibs.

Надеюсь, это поможет.

+0

Можете ли вы предоставить мне более подробную информацию, так как я получаю эту ошибку с андроид-студией. –

+0

Извините, я не знаю, что вы имеете в виду. Я больше не работаю с этим, но, насколько я помню, все, что вам нужно сделать, это разместить ваши файлы linphone libs в папках, о которых я упоминаю. – Isaac

Смежные вопросы