2016-03-20 33 views
1

我正在處理存儲庫中的電報信使的定製版本:https://github.com/DrKLO/Telegram。我想用MPAndroidChart和領域中,但是當我通過在線儲存庫添加領域是這樣的:當我添加領域庫時,電報信使客戶端不起作用

在gradle這個文件:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath "io.realm:realm-gradle-plugin:0.88.2" 
    } 
} 

在gradle這個模塊文件:

dependencies { 
    compile 'io.realm:realm-android:0.88.2' 
} 

repositories { 
    maven { url "https://jitpack.io" } 
    maven { // this is for realm-db 
     url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' 
    } 
} 

甚至當像這樣添加jar文件並編譯並運行它時,我遇到以下錯誤,當我沒有添加已編譯的c/C++依賴項時,我會採用以下錯誤。

添加手動: 我已經加入相關領域庫腳趾「realm_libs」文件夾中的jar和POM文件,並添加下面一行到搖籃的依賴。

compile files('realm_libs/realm-android-0.80.2.jar') 

的錯誤我遇到:

E/art: dlopen("/data/data/org.telegram.messenger.beta/files/lib/libtmessages.17loc.so", RTLD_LAZY) failed: dlopen failed: "/data/data/org.telegram.messenger.beta/files/lib/libtmessages.17loc.so" is 32-bit instead of 64-bit 
E/art: dlopen("/data/data/org.telegram.messenger.beta/files/lib/libtmessages.17loc.so", RTLD_LAZY) failed: dlopen failed: "/data/data/org.telegram.messenger.beta/files/lib/libtmessages.17loc.so" is 32-bit instead of 64-bit 
E/art: No implementation found for void org.telegram.tgnet.ConnectionsManager.native_setJava(boolean) (tried Java_org_telegram_tgnet_ConnectionsManager_native_1setJava and Java_org_telegram_tgnet_ConnectionsManager_native_1setJava__Z) 
E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: org.telegram.messenger.beta, PID: 13900 
        java.lang.UnsatisfiedLinkError: No implementation found for void org.telegram.tgnet.ConnectionsManager.native_setJava(boolean) (tried Java_org_telegram_tgnet_ConnectionsManager_native_1setJava and Java_org_telegram_tgnet_ConnectionsManager_native_1setJava__Z) 
         at org.telegram.tgnet.ConnectionsManager.native_setJava(Native Method) 
         at org.telegram.messenger.ApplicationLoader.onCreate(ApplicationLoader.java:268) 
         at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1017) 
         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4938) 
         at android.app.ActivityThread.access$1500(ActivityThread.java:182) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1576) 
         at android.os.Handler.dispatchMessage(Handler.java:111) 
         at android.os.Looper.loop(Looper.java:194) 
         at android.app.ActivityThread.main(ActivityThread.java:5717) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:372) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
I/Process: Sending signal. PID: 13900 SIG: 9 

該項目成功地清潔和我有境界庫進口沒有問題,但是當我在設備上運行的錯誤occures。

+0

自境界0.88.0中,設定的gradle改變。請參閱https://realm.io/docs/java/latest/#installation。你不需要''編譯'io.realm:realm-android:0.88.2''但是在應用程序的gradle中應用插件:'realm-android''。 – beeender

+0

我找到了答案,我要在這裏發佈。問題是領域應該被編譯爲32位模式,因爲電報只支持32位機器。我通過按照此處的指示拆分版本來照顧這一點:http://realm.io/news/reducing-apk-size-native-libraries/ –

回答

0

問題是電報只支持32位機器,領域應該編譯爲32位模式。

realm.io/news/reducing-apk-size-native-libraries

你必須得到來自該link下載部分的jar文件和4個文件夾:這可以通過使用該領域的舊版本(https://static.realm.io/downloads/java/realm-java-0.87.4.zip)和分裂建立的指示,在這裏完成從eclipse目錄中指出應該將不同體系結構添加到src/main/jniLibs目錄中。

及以下應該被添加到模塊的build.gradle文件:

android { 
    // Some other configuration here... 

    splits { 
     abi { 
      enable true 
      reset() 
      include 'x86', 'armeabi', 'armeabi-v7a', 'mips' 
      universalApk false 
     } 
    } 
} 

dependencies { 
    compile files('libs/realm-android-0.87.4.jar') 
}