Царство конфликтует с Crosswalk
В моем приложении я должен использовать библиотеки Realm и Crosswalk. Я импортировал Realm из Gradle следующим образом:
Project gradle
dependencies {
classpath "io.realm:realm-gradle-plugin:2.2.1"
}
// ----------------------
App module gradle
apply plugin: 'realm-android'
и приложение Crosswalk как отдельный проект (не из gradle). И когда я запускаю свое приложение, оно падает со следующими журналами:
I/art: Late-enabling -Xcheck:jni
D/XWalkLib: Pre init xwalk core in com.app.myapp.LoginActivty
D/XWalkActivity: Initialize by XWalkInitializer
D/XWalkLib: DecompressTask started
W/ResourceType: No package identifier when getting value for resource number 0x00000000
D/XWalkLib: Reserve object class com.app.myapp.CustomView.MyXwalkView to com.app.myapp.LoginActivty
D/XWalkLib: Reserve object class com.app.myapp.LoginActivty$ResourceClient to com.app.myapp.LoginActivty
D/XWalkLib: Reserve method setResourceClient to com.app.myapp.LoginActivty
D/XWalkLib: DecompressTask finished, 0
D/XWalkLib: ActivateTask started
D/XWalkLib: Attach xwalk core
D/XWalkLib: [App Version] build:22.52.561.4, api:7, min_api:1
D/XWalkLib: [Lib Version] build:22.52.561.4, api:7, min_api:5
D/XWalkLib: Crosswalk download mode: false
D/XWalkLib: XWalk core version matched
D/XWalkLib: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.app.myapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.app.myapp-2/lib/arm64, /system/fake-libs64, /data/app/com.app.myapp-2/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]] couldn't find "libxwalkcore.so"
D/XWalkLib: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/user/0/com.app.myapp/app_xwalkcore/libxwalkcore.so" not found
D/XWalkLib: Device ABI: arm64-v8a
D/XWalkLib: org.xwalk.core not found
D/XWalkLib: org.xwalk.core64 not found
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 2
D/XWalkLib: ActivateTask finished, 6
D/XWalkLib: Crosswalk APK download URL:
D/XWalkLib: HttpDownloadTask started,
E/XWalkLib: Invalid download URL
D/XWalkLib: HttpDownloadTask finished, -1
Но когда я удаляю нотации Realm из Gradle, Crosswalk работает отлично... Так как я могу использовать и Realm, и Crosswalk вместе?
1 ответ
Какие ABI Crosswalk вы включаете в свое приложение?
из Logcat кажется, что ваш проект пытается найти arm64
версия библиотеки Crosswalk, но она не может найти ее в вашем APK.
Realm AAR поставляется со следующими ABI (arm64-v8a, armeabi-v7a, mips, x86 и x86_64), поэтому при загрузке библиотеки Realm ваше устройство выберет подходящий доступный ABI, в нашем случае arm64-v8a
, Я полагаю, ваша библиотека Crosswalk не включает arm64-v8a
ABI, отсюда и ошибка.