Dropbox Sync API - Unsatisfied Link Error

android, dropbox-api

Solution

`libDropboxSync.so` was missing in `armeabi-v7a` folder under the `libs` directory. I copied `libDropboxSync.so` from `armeabi-v7` folder to `armeabi-v7a` folder under the `libs` directory, and the library was loaded successfully. Since i am using `Google-Nexus-7` 2nd generation for debugging, therefore the `DropboxSync` library in `armeabi-v7a` folder was a must.

Problem

I am trying to implement `DropboxSync` API in my existing Android Application. I have downloaded the `DropboxSync` API and copied all the libs in my Application's lib folder. I have also pointed the Native Library location to the libs folder where libDropboxSync.so is located. `Manifest.xml` ``` .... <!-- Dropbox Activities --> <activity android:name="com.dropbox.sync.android.DbxAuthActivity" /> <activity android:name="com.dropbox.client2.android.AuthActivity" android:launchMode="singleTask" > <intent-filter> <data android:scheme="db-intentionally-hidden-app-key" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <service android:name="com.dropbox.sync.android.DbxSyncService" android:enabled="true" android:exported="false" android:label="Dropbox Sync" /> ``` `Main_Activity.java` ``` public class Activity_Main extends Activity implements OnClickListener, OnItemClickListener, OnTouchListener { .... .... .... private DbxAccountManager mDbxAcctMgr; onCreate(....) { //Application giving FATAL EXCEPTION on the line below. mDbxAcctMgr = DbxAccountManager.getInstance((Activity)Activity_Main.this, DROPBOX_APP_KEY, DROPBOX_APP_SECRET); .... } .... } ``` `Logcat Logs` ``` 12-06 10:10:25.362: E/AndroidRuntime(8110): FATAL EXCEPTION: main 12-06 10:10:25.362: E/AndroidRuntime(8110): Process: com.***.***, PID: 8110 12-06 10:10:25.362: E/AndroidRuntime(8110): java.lang.UnsatisfiedLinkError: Couldn't load DropboxSync from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/com.***.***-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.***.***-1, /vendor/lib, /system/lib]]]: findLibrary returned null 12-06 10:10:25.362: E/AndroidRuntime(8110): at java.lang.Runtime.loadLibrary(Runtime.java:358) 12-06 10:10:25.362: E/AndroidRuntime(8110): at java.lang.System.loadLibrary(System.java:526) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.NativeHttp.<clinit>(NativeHttp.java:447) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.NativeLib.<init>(NativeLib.java:33) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.NativeLib.<clinit>(NativeLib.java:11) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.CoreAccountManager.initNativeLib(CoreAccountManager.java:155) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.CoreAccountManager.<init>(CoreAccountManager.java:126) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:149) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.dropbox.sync.android.DbxAccountManager.getInstance(DbxAccountManager.java:115) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.***.***.activities.Activity_Main.onCreate(Activity_Main.java:459) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.Activity.performCreate(Activity.java:5243) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.ActivityThread.access$700(ActivityThread.java:135) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.os.Handler.dispatchMessage(Handler.java:102) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.os.Looper.loop(Looper.java:137) 12-06 10:10:25.362: E/AndroidRuntime(8110): at android.app.ActivityThread.main(ActivityThread.java:4998) 12-06 10:10:25.362: E/AndroidRuntime(8110): at java.lang.reflect.Method.invokeNative(Native Method) 12-06 10:10:25.362: E/AndroidRuntime(8110): at java.lang.reflect.Method.invoke(Method.java:515) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 12-06 10:10:25.362: E/AndroidRuntime(8110): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 12-06 10:10:25.362: E/AndroidRuntime(8110): at dalvik.system.NativeStart.main(Native Method) 12-06 10:10:25.532: W/ActivityThread(8110): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader()); ``` I have already tried this solution :Error in dropboxSync: findlibrary returned null But it is not working for me. So please don't mark this question as a duplicate. Any Help is highly appreciated, thanks.

Original source

Related problems