2013-09-01 111 views
4

任何人都可以解釋我可以如何將Dropbox SDK加入Android Studio?在Dropbox的網站上,我找到了Eclipse IDE的信息。我試過將它包含到Android Studio中,但沒有結果。 IDE無法找到類com.dropbox.syncAndroid Studio + dropbox-android-sync-sdk-1.1.2

/錯誤,當我想創建我做鏈接mDbxAcctMgr = DbxAccountManager.getInstance(getApplicationContext(),appKey,appSecret);/

09-02 12:38:46.297 1133-1133/? E/AndroidRuntime: Uncaught handler: thread main exiting due to uncaught exception 
09-02 12:38:46.307 1133-1133/? E/AndroidRuntime: java.lang.ExceptionInInitializerError 
     at com.dropbox.sync.android.CoreAccountManager.initNativeLib(CoreAccountManager.java:111) 
     at com.dropbox.sync.android.CoreAccountManager.<init>(CoreAccountManager.java:91) 
     at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:132) 
     at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:100) 
     at com.example.dropbox.MainActivity.onCreate(MainActivity.java:43) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
     at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:123) 
     at android.app.ActivityThread.main(ActivityThread.java:4363) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:521) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
     at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.ExceptionInInitializerError 
     at com.dropbox.sync.android.NativeLib.<init>(NativeLib.java:33) 
     at com.dropbox.sync.android.NativeLib.<clinit>(NativeLib.java:11) 
     ... 18 more 
     Caused by: java.lang.UnsatisfiedLinkError: Library DropboxSync not found 
     at java.lang.Runtime.loadLibrary(Runtime.java:489) 
     at java.lang.System.loadLibrary(System.java:557) 
     at com.dropbox.sync.android.NativeHttp.<clinit>(NativeHttp.java:411) 
     ... 20 more 

回答

5

我從來沒有使用過Android Studio之前,讓我不得不看它......這些都增加了外部庫到Android Studio項目良好的指示:How do I add a library project to Android Studio?

此之後與Dropbox的Android同步SDK,我貼的libs在Android SDK中的內容插入libs在我的Android項目,然後我加入這行build.gradle(內dependencies):

compile files('libs/dropbox-sync-sdk-android.jar') 

這似乎適用於我。如果您嘗試過,並且無法使用(或者您嘗試了其他方法),請提供一些詳細信息。

編輯從Android & DropboxSync Library粘貼我的回答的完整性:

我發現這個蘇答案有幫助:Include .so library in apk in android studio

build.gradle文件的一部分,現在看起來是這樣,和我的應用程序成功啓動:

dependencies { 
    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

task nativeLibsToJar(
     type: Zip, 
     description: 'create a jar archive of the native libs') { 
    destinationDir file("$buildDir/native-libs") 
    baseName 'native-libs' 
    extension 'jar' 
    from fileTree(dir: 'libs', include: '**/*.so') 
    into 'lib/' 
} 

tasks.withType(Compile) { 
    compileTask -> compileTask.dependsOn(nativeLibsToJar) 
} 
+0

Thx很多!這行編譯文件('libs/dropbox-sync-sdk-android.jar')就是我所需要的。我知道我必須增加一些線到分級...但是哪一條線。現在我再次知道Thx! – kbu

+0

你能告訴我,爲什麼我有錯誤,當我嘗試創建一個DbxAcccountManger?以上錯誤 – kbu

+0

我認爲你的新問題是http://stackoverflow.com/questions/18574283/android-dropboxsync-library的重複。 – smarx

2

官方的解決方案並沒有爲我工作。我注意到tasks.withType中的「Compile」(Compile)有一個不推薦使用的警告。

中的build.gradle以下線路工程:

dependencies { 
    compile files('libs/dropbox-sync-sdk-android.jar') 
} 

android { 
    tasks.withType(com.android.build.gradle.tasks.PackageApplication) { 
     pkgTask -> pkgTask.jniFolders = new HashSet<File>(); 
      pkgTask.jniFolders.add(new File(projectDir, 'libs')); 
    } 
} 

廣場的Dropbox SDK中的「庫」文件夾,在以「構建」和「SRC」文件夾相同的水平。