Ошибка Android — dlopen — не удается найти символ, но только на Nexus

Итак, моя игра отлично работает на нескольких устройствах, включая Samsung Galaxy S4 и NVIDIA Shield. Но на Nexus 7 (и 5 имеют симптомы на устройстве коллеги, но я не смог подтвердить через отладчик).

Игра состоит из 14 общих собственных библиотек плюс main.so, все написаны на C ++, и все они, кажется, нормально загружаются, за исключением того, что по крайней мере одна из собственных пользовательских библиотек не может выполнить поиск символов при создании экземпляра класса, но только при запуске на Nexus.

Еще один симптом заключается в том, что все работает нормально, если я включаю метод, который не выполняет поиск символов в заголовочном файле (в отличие от файла .cpp). В этом случае неудачный поиск символов просто переместился в другие методы, определенные в файле cpp (я еще не пробовал перемещать все в заголовок).

Я вручную проверил, что .so на самом деле имеет отсутствующий символ, поэтому я уверен, что метод есть. Отсутствующий символ находится в libinput.so, как показано ниже.

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

… < вырезать динамические нагрузки для других библиотек, как показано ниже> …

06-15 23: 42: 37.155: D / dalvikvm (11695): Попытка загрузить lib /data/app-lib/com.kotoristudios.MULEReturns-1/libinput.so 0x41e1dd58
06-15 23: 42: 37.155: D / dalvikvm (11695): добавлена ​​общая lib /data/app-lib/com.kotoristudios.MULEReturns-1/libinput.so 0x41e1dd58
06-15 23: 42: 37.155: D / dalvikvm (11695): JNI_OnLoad не найден в /data/app-lib/com.kotoristudios.MULEReturns-1/libinput.so 0x41e1dd58, пропуская init

… < вырезать динамические нагрузки для других библиотек, аналогичных приведенным выше> …

06-15 23: 42: 37.185: E / dalvikvm (11695): dlopen ("/ data / app-lib / com.kotoristudios.MULEReturns-1 / libmain.so") завершился ошибкой: ошибка dlopen: невозможно найти символ ссылка на "libmain.so" ...
06-15 23: 42: 37.185: W / dalvikvm (11695): исключение Ljava / lang / UnsatisfiedLinkError; выбрасывается при инициализации Lcom / kotoristudios / MULEReturns / MULEReturnsActivity;
06-15 23: 42: 37.185: W / dalvikvm (11695): сбой инициализации класса при вызове newInstance (Lcom / kotoristudios / MULEReturns / MULEReturnsActivity;)
06-15 23: 42: 37.185: D / AndroidRuntime (11695): выключение виртуальной машины
06-15 23: 42: 37.185: W / dalvikvm (11695): threadid = 1: поток завершается с необработанным исключением (группа = 0x4154bba8)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное
06-15 23: 42: 37.185: E / AndroidRuntime (11695): Процесс: com.kotoristudios.MULEReturns, PID: 11695
06-15 23: 42: 37.185: E / AndroidRuntime (11695): java.lang.UnsatisfiedLinkError: ошибка dlopen: не удается найти символ "_ZN5Input12InputManager13ReceiveEventsERSt6vectorIPNS_5EventESaIS3_EE", на который ссылается "libmain.so" ...
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на java.lang.Runtime.loadLibrary (Runtime.java:364)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на java.lang.System.loadLibrary (System.java:526)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): at com.kotoristudios.MULEReturns.MULEReturnsActivity. (MULEReturnsActivity.java:28)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на java.lang.Class.newInstanceImpl (собственный метод)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на java.lang.Class.newInstance (Class.java:1208)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.app.Instrumentation.newActivity (Instrumentation.java:1061)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2112)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2245)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.app.ActivityThread.access $ 800 (ActivityThread.java:135)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.os.Handler.dispatchMessage (Handler.java:102)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.os.Looper.loop (Looper.java:136)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на android.app.ActivityThread.main (ActivityThread.java:5017)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): в java.lang.reflect.Method.invokeNative (собственный метод)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на java.lang.reflect.Method.invoke (Method.java:515)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:779)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:595)
06-15 23: 42: 37.185: E / AndroidRuntime (11695): at dalvik.system.NativeStart.main (собственный метод)
06-15 23: 47: 37.408: I / Process (11695): отправка сигнала. PID: 11695 SIG: 9

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector