2016-12-08 1 views
1

У меня есть приложение для Android, в которое я вставляю игру, которую я делаю в Unity 3D. Другая часть приложения написана в Cordova/Ionic, и мне нужно использовать Crosswalk для поддержки старых телефонов Android.Android-проект с Unity JNI библиотеки crash после Crosswalk был добавлен

Но когда я добавить Пешеходный к моему проекту, приложение падает сразу после запуска с следующим выводом:

W/chromium: [WARNING:xwalk_external_extension.cc(58)] Error loading extension '/data/app/com.example.app-2/lib/arm/libmono.so': couldn't get XW_Initialize function. 
W/chromium: [WARNING:xwalk_extension_server.cc(407)] Failed to initialize extension: /data/app/com.example.app-2/lib/arm/libmono.so 
W/chromium: [WARNING:xwalk_external_extension.cc(58)] Error loading extension '/data/app/com.example.app-2/lib/arm/libxwalkcore.so': couldn't get XW_Initialize function. 
W/chromium: [WARNING:xwalk_extension_server.cc(407)] Failed to initialize extension: /data/app/com.example.app-2/lib/arm/libxwalkcore.so 
I/chromium: [INFO:xwalk_extension_renderer_controller.cc(42)] EXTENSION PROCESS DISABLED. 
W/chromium: [WARNING:xwalk_external_extension.cc(58)] Error loading extension '/data/app/com.example.app-2/lib/arm/libVuforiaWrapper.so': couldn't get XW_Initialize function. 
W/chromium: [WARNING:xwalk_extension_server.cc(407)] Failed to initialize extension: /data/app/com.example.app-2/lib/arm/libVuforiaWrapper.so 
W/chromium: [WARNING:xwalk_external_extension.cc(58)] Error loading extension '/data/app/com.example.app-2/lib/arm/libunity.so': couldn't get XW_Initialize function. 
32398-32443/com.example.app A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 32443 (Chrome_FileThre) 
I/DEBUG: property debug.db.uid not set; NOT waiting for gdb. 
I/DEBUG: HINT: adb shell setprop debug.db.uid 100000 
I/DEBUG: HINT: adb forward tcp:5039 tcp:5039 
A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
A/DEBUG: Build fingerprint: 'google/razor/flo:6.0.1/MMB29Q/2480792:user/release-keys' 
A/DEBUG: Revision: '0' 
A/DEBUG: ABI: 'arm' 
A/DEBUG: pid: 32398, tid: 32443, name: Chrome_FileThre >>> com.example.app <<< 
A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 
A/DEBUG:  r0 00000000 r1 98034abc r2 00000002 r3 0013064c 
A/DEBUG:  r4 00000000 r5 00130630 r6 00001000 r7 9771a0a0 
A/DEBUG:  r8 b5b27000 r9 b5b27dc4 sl b6cfc444 fp 0000000c 
A/DEBUG:  ip 00007ebb sp 9b1fffe8 lr 9771a0e0 pc 9771ac38 cpsr 600f0010 
A/DEBUG: backtrace: 
A/DEBUG:  #00 pc 00498c38 /data/app/com.example.app-2/lib/arm/libunity.so 
A/DEBUG:  #01 pc 004980dc /data/app/com.example.app-2/lib/arm/libunity.so 
A/DEBUG:  #02 pc 00491f88 /data/app/com.example.app-2/lib/arm/libunity.so 
A/DEBUG:  #03 pc 004980a8 /data/app/com.example.app-2/lib/arm/libunity.so 
A/DEBUG:  #04 pc 00047f9f /system/lib/libc.so (__cxa_finalize+138) 
A/DEBUG:  #05 pc 00002559 /system/bin/linker (__dl__ZN6soinfo13call_functionEPKcPFvvE+48) 
A/DEBUG:  #06 pc 00002623 /system/bin/linker (__dl__ZN6soinfo10call_arrayEPKcPPFvvEjb+134) 
A/DEBUG:  #07 pc 000026e3 /system/bin/linker (__dl__ZN6soinfo16call_destructorsEv+58) 
A/DEBUG:  #08 pc 0000668b /system/bin/linker (__dl__ZL13soinfo_unloadP6soinfo+266) 
A/DEBUG:  #09 pc 000068d7 /system/bin/linker (__dl__Z10do_dlcloseP6soinfo+14) 
A/DEBUG:  #10 pc 00001b89 /system/bin/linker (__dl_dlclose+16) 
A/DEBUG:  #11 pc 00287de5 /data/app/com.example.app-2/lib/arm/libxwalkcore.so 

Таким образом, очевидно, libunity.so есть какое-то проблемы с libxwalkcore.so

I полагаю, что это из-за того, что Crosswalk пытается найти «XW_Initialize function» в libunity.so, и почему-то это приводит к сбою всего приложения.

Когда я пользуюсь Crosswalk-Lite Все работает отлично, кроме веб-видео (отключено в crosswalk-lite), что мне, к сожалению, нужно.

Есть ли способ сказать перекрестку, чтобы не загружать libunity.so в качестве расширения?

Или есть ли возможность иметь библиотеки Unity JNI в одной папке и библиотеки Crosswalk во втором?

Спасибо :)

ответ

0

Это немного поздно, но когда я установил Пешеходный используя эту команду, она работала:

cordova plugin add cordova-plugin-crosswalk-webview --variable XWALK_VERSION="15" --variable XWALK_MODE="lite" 

Почему; Я не знаю. Тем не менее, я почти уверен, что речь идет не о таинственной функции «XW_Initialize», поскольку crosswalk дает похожие предупреждения для файлов non-Unity .so (как минимум, для меня).

EDIT:

Видимо, настройки версии 15 нет необходимости; просто режим настроек для Lite достаточно:

cordova plugin add cordova-plugin-crosswalk-webview --variable XWALK_MODE="lite"