У меня ошибка при установке линфона с https://github.com/BelledonneCommunications/linphone-android
это выглядит так:
08-29 10: 33: 39,705 14701-14701 /? E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: главная
Процесс: org.linphone, PID: 14701
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader [DexPathList [[zip-файл »/data/app/org.linphone-2/base.apk»],nativeLibraryDirectories=[/vendor/lib64, / system / lib64]] не удалось найти «libgnustl_shared.so»
at java.lang.Runtime.loadLibrary (Runtime.java:367)
в java.lang.System.loadLibrary (System.java:988)
в org.linphone.core.LinphoneCoreFactoryImpl. (LinphoneCoreFactoryImpl.java:47)
в java.lang.Class.classForName (собственный метод)
в java.lang.Class.forName (Class.java:309)
в java.lang.Class.forName (Class.java:273)
в org.linphone.core.LinphoneCoreFactory.instance (LinphoneCoreFactory.java:47)
на org.linphone.LinphoneService.onCreate (LinphoneService.java:305)
на android.app.ActivityThread.handleCreateService (ActivityThread.java:3020)
на android.app.ActivityThread.access $ 1800 (ActivityThread.java:182)
на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1557)
на android.os.Handler.dispatchMessage (Handler.java:111)
на android.os.Looper.loop (Looper.java:194)
на android.app.ActivityThread.main (ActivityThread.java:5662)
в java.lang.reflect.Method.invoke (родной метод)
в java.lang.reflect.Method.invoke (Method.java:372)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:960)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)
кто-то должен был решить проблему раньше? или есть какой-либо исходный код, который может работать в Android Studio правильно? благодарю вас
Это потому, что встроенный линфон не включает 64-битную библиотеку.
Поэтому, когда вы устанавливаете APK на Android, система будет искать каталоги собственных библиотек (armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, mips64, mips) внутри папки lib APK, в порядке, определяемом Build .SUPPORTED_ABIS.
Если в вашем приложении есть каталог arm64-v8a с отсутствующими библиотеками, отсутствующие библиотеки не будут установлены из другого каталога, библиотеки не будут смешаны. Это означает, что вы должны предоставить полный набор своих библиотек для каждой архитектуры.
Итак, чтобы решить вашу проблему, вы можете удалить ваши 64-битные библиотеки из вашей сборки или настроить abiFilters для упаковки только 32-битных архитектур:
android {
....
defaultConfig {
....
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"}
}
}
это в том случае, если у вас есть эти библиотеки в вашем проекте. Вы можете адаптировать его в соответствии с вашим проектом.
для получения дополнительной информации посмотрите на: Как использовать 32-битные нативные библиотеки на 64-битном устройстве Android
Вы можете посмотреть по этой ссылке.
Других решений пока нет …