1

我正在開發一個android應用程序,我已將 依賴項添加到build.gradle文件中,如下所示。 但我得到的錯誤爲UnsatisfiedLink Error.Dependency我加入 和 的logcat如下:Android UnsatisfiedLink錯誤:

compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.0.1' 
compile 'com.android.support:design:23.0.1' 
compile files('libs/couchbase-lite-android-1.1.0.jar') 


12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime: FATAL EXCEPTION: main 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime: java.lang.ExceptionInInitializerError 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.lite.android.AndroidSQLiteStorageEngine.open(AndroidSQLiteStorageEngine.java:57) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.lite.Database.open(Database.java:977) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.lite.Manager.getDatabase(Manager.java:243) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.examples.couchdbthird.MainActivity.helloCBL(MainActivity.java:50) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.examples.couchdbthird.MainActivity.onCreate(MainActivity.java:31) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.Activity.performCreate(Activity.java:5104) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:137) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5041) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:511) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: Couldn't load com_couchbase_touchdb_TDCollateJSON from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.couchbase.examples.couchdbthird-1.apk,libraryPath=/data/app-lib/com.couchbase.examples.couchdbthird-1]: findLibrary returned null 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at java.lang.Runtime.loadLibrary(Runtime.java:365) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at java.lang.System.loadLibrary(System.java:535) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.touchdb.TDCollateJSON.<clinit>(TDCollateJSON.java:36) 
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.lite.android.AndroidSQLiteStorageEngine.open(AndroidSQLiteStorageEngine.java:57)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.lite.Database.open(Database.java:977)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.lite.Manager.getDatabase(Manager.java:243)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.examples.couchdbthird.MainActivity.helloCBL(MainActivity.java:50)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.couchbase.examples.couchdbthird.MainActivity.onCreate(MainActivity.java:31)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.Activity.performCreate(Activity.java:5104)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.access$600(ActivityThread.java:141)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:99)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:137)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5041)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:511)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)  
12-03 09:12:22.520 25190-25190/com.couchbase.examples.couchdbthird E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method)  
+0

你還可以添加其他的依賴? –

+0

@GabrieleMariotti請參閱已編輯的問題,我添加了所有依賴關係 – Dhiraj

+0

由於您使用的是jar文件,因此您應該一定要添加此庫使用的嵌套依賴關係(這是一個aar文件) –

回答

0

你需要加入這行太

compile fileTree(include: ['*.jar'], dir: 'libs') 
+0

我已經添加了這個在我的代碼行 – Dhiraj

+0

哦對不起,我沒有正確地閱讀這個問題,你可以檢查這個鏈接,它可能有關於這個問題的更多細節https://github.com/couchbase/couchbase-lite-android-liteserv/issues/25 –

0

由於您使用您的jar文件要注意嵌套的依賴條件:

檢查pom file你可以看到這個庫的使用:

<dependencies> 
    <dependency> 
     <groupId>com.couchbase.lite</groupId> 
     <artifactId>couchbase-lite-java-core</artifactId> 
     <version>1.1.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 

這個包內有lot of dependencies:

<dependencies> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.5.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.github.oxo42</groupId> 
     <artifactId>stateless4j</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>2.5.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.5.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 

我建議你避免jar文件,只需要使用這種依賴性:

dependencies { 
    compile 'com.couchbase.lite:couchbase-lite-android:1.1.0' 
} 
+0

我沒有嘗試過你的建議,它下載必要的文件,它的工作fine.please引用此鏈接,你會知道我爲什麼要與罐子http://stackoverflow.com/questions/34064909/which-edition-of-couchbase -lite功能於安卓 – Dhiraj