Failed to load libmain so android

Как решить проблему «libmain.so not found» при использовании Unity в качестве библиотеки в приложении Android с последними версиями AndroidX из ReactNative

У нас есть приложение ReactNative, в которое встроено Unity на основе response- native-unity-view успешно работает как библиотека довольно давно. Однако после последних обновлений ReactNative, касающихся AndroidX и последних SDK-изменений, мы столкнулись с проблемой «libmain.so not found» . Это исключение происходит при самой первой попытке отобразить Unity-View.

Есть похожая проблема на SO, пожалуйста, не помечайте как дубликаты, так как наш подход может быть другим и конкретным, так как мы даем здесь намного больше деталей.

На GitHub есть работающий и работающий пример (на основе ReactNative 0.57): https: / /github.com/f111fei/react-native-unity-demo. Пока этот проект основан на ReactNative 0.57 и соответствующих настройках gradle, все работает отлично. Но как только мы обновляемся до последней версии ReactNative (и даже 0,60, например), которая дает нам папку android, которая сильно отличается от предыдущей), проблема возникает при сбое приложения. (Мы также попытались настроить все с нуля, чтобы исключить возможность возникновения этой проблемы из-за обновлений. С RN 0,57 все по-прежнему работает нормально, с RN 0,60 и выше — нет)

Исключением является следующее:

Сначала я собираюсь перечислить android-folder и gradle-файлы из последней версии, где происходит сбой. После этого я перечислю файлы, где все работает нормально:

Не рабочая (более новая) версия

./ Android / приложение / build.gradle :

./ андроид / UnityExport / build.gradle :

Все эти файлы приводят к падению («libmain.so not found»), как только Unity будет запущен.

Рабочая (старая) версия

В нашей предыдущей версии, как это можно найти на GitHub, все прошло нормально :

Источник

Failed to load ‘libmain.so’, the application will terminate. #125

Comments

Auties00 commented Apr 1, 2020

Hello,
I’m developing a camera app and I chose to use Unity 3D to develop AR Face Filters with the help of the HyprFace SDK. The Unity 3D Project is successfully compiled, but the mist interesting part is that the Unity3D native app for Android works perfectly, while the one using Flutter and your plugin crashes with following message:

E/Unity ( 7759): Failed to load ‘libmain.so’, the application will terminate.
E/flutter ( 7759): [ERROR:flutter/shell/platform/android/platform_view_android_jni.cc(39)] java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file «/data/app/it.auties.video_recorder-38fsW7GIaolSVrCakfaemw==/base.apk»],nativeLibraryDirectories=[/data/app/it.auties.video_recorder-38fsW7GIaolSVrCakfaemw==/lib/arm64, /data/app/it
.auties.video_recorder-38fsW7GIaolSVrCakfaemw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64, /hw_product/lib64, /system/product/lib64]]] couldn’t find «libmain.so»
E/flutter ( 7759): at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
E/flutter ( 7759): at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
E/flutter ( 7759): at java.lang.System.loadLibrary(System.java:1668)
E/flutter ( 7759): at com.unity3d.player.UnityPlayer.(Unknown Source:13)
E/flutter ( 7759): at com.rexraphael.flutterunitywidget.UnityUtils$1.run(UnityUtils.java:55)
E/flutter ( 7759): at android.app.Activity.runOnUiThread(Activity.java:7158)
E/flutter ( 7759): at com.rexraphael.flutterunitywidget.UnityUtils.createPlayer(UnityUtils.java:50)
E/flutter ( 7759): at com.rexraphael.flutterunitywidget.FlutterUnityView.getUnityView(FlutterUnityView.java:103)
E/flutter ( 7759): at com.rexraphael.flutterunitywidget.FlutterUnityView.(FlutterUnityView.java:30)
E/flutter ( 7759): at com.rexraphael.flutterunitywidget.FlutterUnityViewFactory.create(FlutterUnityViewFactory.java:34)
E/flutter ( 7759): at io.flutter.plugin.platform.SingleViewPresentation.onCreate(SingleViewPresentation.java:176)
E/flutter ( 7759): at android.app.Dialog.dispatchOnCreate(Dialog.java:579)
E/flutter ( 7759): at android.app.Dialog.show(Dialog.java:397)
E/flutter ( 7759): at android.app.Presentation.show(Presentation.java:250)
E/flutter ( 7759): at io.flutter.plugin.platform.VirtualDisplayController.(VirtualDisplayController.java:93)
E/flutter ( 7759): at io.flutter.plugin.platform.VirtualDisplayController.create(VirtualDisplayController.java:46)
E/flutter ( 7759): at io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(PlatformViewsController.java:112)
E/flutter ( 7759): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:95)
E/flutter ( 7759): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:59)
E/flutter ( 7759): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:226)
E/flutter ( 7759): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/flutter ( 7759): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:631)
E/flutter ( 7759): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter ( 7759): at android.os.MessageQueue.next(MessageQueue.java:363)
E/flutter ( 7759): at android.os.Looper.loop(Looper.java:173)
E/flutter ( 7759): at android.app.ActivityThread.main(ActivityThread.java:8147)
E/flutter ( 7759): at java.lang.reflect.Method.invoke(Native Method)
E/flutter ( 7759): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/flutter ( 7759): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
E/flutter ( 7759):
F/flutter ( 7759): [FATAL:flutter/shell/platform/android/platform_view_android_jni.cc(76)] Check failed: CheckException(env).
F/libc ( 7759): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 7759 (.video_recorder), pid 7759 (.video_recorder)

Build fingerprint: ‘HUAWEI/MAR-LX1AEEA/HWMAR:10/HUAWEIMAR-L21A/10.0.0.193C431:user/release-keys’
Revision: ‘0’
ABI: ‘arm64’
Timestamp: 2020-04-01 16:55:11+0200
pid: 7759, tid: 7759, name: .video_recorder >>> it.auties.video_recorder (art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 756bb09899d855cad5160602c742fb8f)
#15 pc 00000000005bd25c /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+400) (BuildId: 756bb09899d855cad5160602c742fb8f)
#16 pc 000000000013e914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 756bb09899d855cad5160602c742fb8f)
#17 pc 000000000034ae6a /system/framework/framework.jar (android.os.MessageQueue.next+34)
#18 pc 00000000005bb1c0 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: 756bb09899d855cad5160602c742fb8f)
#19 pc 000000000013e814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 756bb09899d855cad5160602c742fb8f)
#20 pc 0000000000349e7e /system/framework/framework.jar (android.os.Looper.loop+130)
#21 pc 00000000005bdd68 /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1136) (BuildId: 756bb09899d855cad5160602c742fb8f)
#22 pc 000000000013e994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 756bb09899d855cad5160602c742fb8f)
#23 pc 00000000001a71ae /system/framework/framework.jar (android.app.ActivityThread.main+410)
#24 pc 00000000002bf948 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.8053280095303785888+240) (BuildId: 756bb09899d855cad5160602c742fb8f)
#25 pc 00000000005a609c /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 756bb09899d855cad5160602c742fb8f)
#26 pc 000000000014d468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 756bb09899d855cad5160602c742fb8f)
#27 pc 00000000001445b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 756bb09899d855cad5160602c742fb8f)
#28 pc 00000000001531c4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284) (BuildId: 756bb09899d855cad5160602c742fb8f)
#29 pc 00000000004c6b6c /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 756bb09899d855cad5160602c742fb8f)
#30 pc 00000000004c8594 /apex/com.android.runtime/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1476) (BuildId: 756bb09899d855cad5160602c742fb8f)
#31 pc 00000000004557fc /apex/com.android.runtime/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 756bb09899d855cad5160602c742fb8f)
#32 pc 00000000000f7c34 /system/framework/arm64/boot.oat (art_jni_trampoline+180) (BuildId: e5c4a287ed7a598c5e3443275f546efbe999d6b8)
#33 pc 0000000000144334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 756bb09899d855cad5160602c742fb8f)
#34 pc 00000000001531a4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: 756bb09899d855cad5160602c742fb8f)
#35 pc 00000000002eed0c /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: 756bb09899d855cad5160602c742fb8f)
#36 pc 00000000002e9fdc /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall (art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: 756bb09899d855cad5160602c742fb8f)
#37 pc 00000000005baeb0 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648) (BuildId: 756bb09899d855cad5160602c742fb8f)
#38 pc 000000000013e814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 756bb09899d855cad5160602c742fb8f)
#39 pc 00000000003a2862 /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
#40 pc 00000000002bf948 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.8053280095303785888+240) (BuildId: 756bb09899d855cad5160602c742fb8f)
#41 pc 00000000005a609c /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: 756bb09899d855cad5160602c742fb8f)
#42 pc 000000000014d468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 756bb09899d855cad5160602c742fb8f)
#43 pc 0000000000b1b674 /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2596) (BuildId: 70275881a06e870ea0bf132171906cc63390c9d3)
#44 pc 00000000001445b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 756bb09899d855cad5160602c742fb8f)
#45 pc 00000000001531c4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+284) (BuildId: 756bb09899d855cad5160602c742fb8f)
#46 pc 00000000004c6b6c /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: 756bb09899d855cad5160602c742fb8f)
#47 pc 00000000004c67d8 /apex/com.android.runtime/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+408) (BuildId: 756bb09899d855cad5160602c742fb8f)
#48 pc 00000000003c60fc /apex/com.android.runtime/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+636) (BuildId: 756bb09899d855cad5160602c742fb8f)
#49 pc 00000000000e25c4 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, . )+116) (BuildId: 7a277d2d163ee525f6796737645c415c)
#50 pc 00000000000e5aa4 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vectorandroid::String8 const&, bool)+828) (BuildId: 7a277d2d163ee525f6796737645c415c)
#51 pc 00000000000034e0 /system/bin/app_process64 (main+1168) (BuildId: 2f5c71b6655dcef8c8c732154da78dd1)
#52 pc 000000000006a050 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 2f04208be3c24ae761428c0bcfa6bcdf)

The text was updated successfully, but these errors were encountered:

Читайте также:  Майнд карты для андроида

Источник

Как решить проблему «libmain.so не найден» при использовании Unity в качестве библиотеки в приложении Android с последними версиями AndroidX из ReactNative

У нас есть приложение ReactNative, которое довольно долго успешно интегрировало Unity на основе react-native-unity-view в качестве библиотеки. Однако после самых последних обновлений на ReactNative в отношении AndroidX и последних SDK-изменений мы сталкиваемся с проблемой «libmain.so не найден» . Это исключение происходит при самой первой попытке отобразить Unity-View.

Существует аналогичная проблема на SO, пожалуйста, не отмечайте как дубликат, так как наш подход может быть другим и конкретным, так как мы даем здесь гораздо больше подробностей.

Существует запущенный и все еще работающий пример на GitHub (основанный на ReactNative 0.57): https://github.com/f111fei/react-native-unity-demo . Пока этот проект основан на ReactNative 0.57 и его соответствующих gradle-настройках, все работает нормально. Но как только мы обновляемся до последней версии ReactNative (и даже 0.60, например), что дает нам android-папку, которая очень отличается от старой), проблема возникает с крахом приложения. (Мы также попытались настроить все с нуля, чтобы исключить возможность того, что эта проблема была вызвана обновлениями. С RN 0.57 все по-прежнему работает нормально, с RN 0.60 и выше-нет)

Исключение составляет следующее:

Сначала я собираюсь перечислить android-папку и gradle-файлы из самой последней версии, где происходит сбой. После этого я перечислю файлы, где все работает нормально:

Не работает (более новая) версия

./android/build.gradle:

./android/settings.gradle:

./android/app/build.gradle:

./android/UnityExport/build.gradle:

Все эти файлы выше приведут к сбою («libmain.so не найден»), как только Unity будет запущен.

Рабочая (более старая) версия

В нашей предыдущей версии, как ее можно найти на GitHub , все прошло нормально:

./android/build.gradle:

./android/settings.gradle:

./android/app/build.gradle:

./android/UnityExport/build.gradle:

Читайте также:  Android контекстное меню по долгому нажатию

Есть и другие сообщения по этому вопросу на официальных Unity2D-форумах , но без какого-либо рабочего решения. Согласно комментарию , мы знаем об использовании одной и той же настройки abiFilter в обоих файлах build.gradle (это из нашего приложения и сборка-gradle из UnityExport), но это также не решило проблему.

Может кто-нибудь помочь, пожалуйста?

Информационная система машинного развития :

2 ответа

Я перенес свой библиотечный проект Android (SDK) в AndroidX, и он использует зависимость implementation ‘androidx.core:core:1.1.0’ . После интеграции этого SDK в приложение, отличное от AndroidX, мой SDK выходит из строя со следующим исключением: Caused by: java.lang.NoClassDefFoundError: Failed.

У меня есть проблема в моем дипломном проекте, я добавляю Unity в качестве библиотеки в Android Studio, он отлично работает с моим мобильным телефоном, но когда я пытаюсь на другом мобильном телефоне Android, я получаю какую-то странную ошибку (не могу загрузить libmain.so ), я много ищу, но не.

Теперь я могу ответить сама. Проблема была вызвана экспортом Unity, который не был совместим с ARM64, если только несколько настроек не были применены вручную. Вот как это делается:

Bevor building для Android, нам нужно настроить некоторые настройки в «Player Settings», чтобы сделать ARM64 доступным:

  1. Переключение «Scripting Backend» с Mono на ILCPP, что позволяет нам :
  2. Выберите «ARM64» в разделе Целевые архитектуры

Если вы столкнулись с ошибкой типа «NDK not found» во время сборки, убедитесь, что Unity загрузила и установила свою собственную копию NDK:

Имея все это в виду, мы сможем связать эти библиотеки, не упуская возможности найти «libmain.so».

Пожалуйста, добавьте следующую строку в свой string.xml

После этого добавьте нижеприведенный фрагмент кода в файл gradle вашего уровня приложения

Читайте также:  Андроид перестал принимать смс

Вот и все. Кроме кодирования!!

Похожие вопросы:

я работаю над приложением android AR . В этом приложении пользователь может разместить 3d моделей мебели и взаимодействовать с ними. я хочу спроектировать эту модель в unity 3d. Я использую vuforia.

Я новичок в Unity. У меня есть библиотека Android jar, которую я хочу предложить также в качестве плагина с Unity. В библиотеке jar у меня есть папка html, которая содержит файл temp.json. В файле.

Я использую базу данных firebase(для android) для unity. Однако при сборке для платформы android я получаю эту ошибку: IOException: не удалось переместить файл / папку с.

Я перенес свой библиотечный проект Android (SDK) в AndroidX, и он использует зависимость implementation ‘androidx.core:core:1.1.0’ . После интеграции этого SDK в приложение, отличное от AndroidX.

У меня есть проблема в моем дипломном проекте, я добавляю Unity в качестве библиотеки в Android Studio, он отлично работает с моим мобильным телефоном, но когда я пытаюсь на другом мобильном.

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

Ссылаясь на https:/ / android.googlesource.com / платформа/фреймворки/база/+ / master/core/res/res/layout/simple_spinner_item.xml и.

Работая над проектом React Native, но внезапно он перестал работать & начал выдавать ошибку: Manifest merger failed : Attribute [email protected]

Источник

Оцените статью