sqlcipher / android-database-sqlcipher

Android SQLite API based on SQLCipher
https://www.zetetic.net/sqlcipher/sqlcipher-for-android/
Other
2.73k stars 564 forks source link

UnsatisfiedLinkError couldn't find "libsqlcipher.so" #645

Closed mo7amd89 closed 1 month ago

mo7amd89 commented 1 month ago

Expected Behavior

implementation "net.zetetic:android-database-sqlcipher:4.5.2@aar"

Android version 8.1.0

Device name Nexus 5X

Fatal Exception: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.myapp.exp-FQowCvOJ1aoVRgGn0pXiVw==/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp.exp-FQowCvOJ1aoVRgGn0pXiVw==/lib/x86, /system/lib, /vendor/lib]]] couldn't find "libsqlcipher.so" at java.lang.Runtime.loadLibrary0(Runtime.java:1011) at java.lang.System.loadLibrary(System.java:1657) at net.sqlcipher.database.SQLiteDatabase$1.loadLibraries(SQLiteDatabase.java:227) at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:244) at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:223) at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:216) at net.sqlcipher.database.SupportHelper.(SupportHelper.java:31) at net.sqlcipher.database.SupportFactory.create(SupportFactory.java:43) at app.db.AppDatabase_Impl.createOpenHelper(AppDatabase_Impl.java:428) at androidx.room.RoomDatabase.init(RoomDatabase.java:184) at androidx.room.RoomDatabase$Builder.build(RoomDatabase.kt:1352) at app.db.DatabaseClient.buildRoomDBwithSQLCipher(DatabaseClient.java:30) at app.db.DatabaseClient.getInstance(DatabaseClient.java:16) at app.DiKt$appModule$1$3.invoke(Di.kt:81) at app.DiKt$appModule$1$3.invoke(Di.kt:80) at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50) at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46) at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55) at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.java:53) at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.java:36) at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53) at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.java:109) at org.koin.core.scope.Scope.resolveValue(Scope.kt:247) at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233) at org.koin.core.scope.Scope.get(Scope.kt:212) at app.DiKt$appModule$1$47.invoke(Di.kt:334) at app.DiKt$appModule$1$47.invoke(Di.kt:317) at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50) at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46) at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55) at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.java:53) at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.java:36) at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53) at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.java:109) at org.koin.core.scope.Scope.resolveValue(Scope.kt:247) at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233) at org.koin.core.scope.Scope.get(Scope.kt:212) at app.DiKt$appModule$1$37.invoke(Di.kt:334) at app.DiKt$appModule$1$37.invoke(Di.kt:303) at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50) at org.koin.core.instance.FactoryInstanceFactory.get(FactoryInstanceFactory.kt) at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.java:109) at org.koin.core.scope.Scope.resolveValue(Scope.kt:247) at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233) at org.koin.core.scope.Scope.get(Scope.kt:212) at org.koin.androidx.viewmodel.factory.KoinViewModelFactory.create(KoinViewModelFactory.kt:25) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:184) at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150) at org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel(GetViewModel.kt:43) at org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel$default(GetViewModel.kt:28) at app.ui.MainActivity$special$$inlined$viewModel$default$2.invoke(MainActivity.java:80) at app.ui.MainActivity$special$$inlined$viewModel$default$2.invoke(MainActivity.java:46) at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81) at app.ui.MainActivity.getMediaViewModel(MainActivity.kt:60) at app.ui.MainActivity.onCreate(MainActivity.kt:155) at android.app.Activity.performCreate(Activity.java:7009) at android.app.Activity.performCreate(Activity.java:7000) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) at android.app.ActivityThread.-wrap11() at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

developernotes commented 1 month ago

Hello @mo7amd89,

Thanks for your interest in SQLCipher. We reserve GitHub Issues for tracking defects within the software library itself. This particular question should be posted to the SQLCipher Community Discuss site, please consider reposting there instead. Please note, the android-database-sqlcipher library was deprecated last year, superseded by sqlcipher-android.