Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio + dropbox-android-sync-sdk-1.1.2

Could anybody explain how I can include Dropbox SDK into Android Studio? On the dropbox's site I found information for the Eclipse IDE. I've tried include it into Android Studio, but with no result. IDE can't find the class com.dropbox.sync.

/ERROR when i want create i make link 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
like image 827
kbu Avatar asked Feb 15 '23 09:02

kbu


1 Answers

I've never used Android Studio before, so I had to look it up... these are good instructions for adding an external library to an Android Studio project: How do I add a library project to Android Studio?

Following that with the Dropbox Android Sync SDK, I pasted the contents of libs in the Android SDK into libs in my Android project, and then I added this line to build.gradle (inside dependencies):

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

That seemed to work for me. If you tried that and it didn't work (or if you tried something else), please provide some details.

EDIT Pasting my answer from Android & DropboxSync Library for completeness:

I found this SO answer helpful: Include .so library in apk in android studio

Part of my build.gradle file now looks like this, and my app starts successfully:

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)
}
like image 156
user94559 Avatar answered Feb 23 '23 02:02

user94559