0

私のアプリでは、レルムとクロスウォークのライブラリを使用する必要があります。私はこのようなGradleのからレルムを輸入していますレルムがクロスウォークと矛盾します

Project gradle 
dependencies { 
     classpath "io.realm:realm-gradle-plugin:2.2.1" 
    } 

// ----------------------

App module gradle 
apply plugin: 'realm-android' 

と横断歩道アプリ別のプロジェクトのように(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 

しかし、私はGradleの横断歩道からレルム表記を削除するときは、完全に実行されます...それでは、どのように私は両方使用することができますし、レルム、および一緒に横断歩道?

答えて

1

あなたのアプリには、CrosswalkのABIが含まれていますか?

Logcatからあなたのプロジェクトは、クロスウォークライブラリのarm64バージョンを探しているようですが、あなたのAPKで見つけることができません。

Realm AARには、次のABI(arm64-v8a、armeabi-v7a、mips、x86およびx86_64)が付属しているため、Realmライブラリをロードすると、デバイスは適切なABIを選択します。私はあなたのクロスウォークのlibにarm64-v8a ABIが含まれていないと推測します。したがって、エラーです。

+0

私は32ビットデバイスでもアプリケーションを実行する必要があるため、クロスウォーク32ビット版を使用していますが、<< apply plugin: 'realm-android' >>を使わないと、正常に動作しますが、そのプラグインでクラッシュします。それで、クロスウォーク32ビット版で64ビットデバイスでプラグインを実行できますか? –

+0

https://realm.io/docs/java/latest/#couldnt-load-librealm-jnisoをご覧ください – geisshirt