我在我的应用程序中使用 sqlcipher 和一些本机代码。几乎所有设备上的一切都运行良好。问题仅存在于装有 Android 6.0.1 的 Nexus 5X 上。我得到错误:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/sqlite.sql3312test-1/base.apk"],nativeLibraryDirectories=[/data/app/sqlite.sql3312test-1/lib/arm64, /data/app/sqlite.sql3312test-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libstlport_shared.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
我正在使用 gradle,我有依赖:
dependencies {
//..
compile 'net.zetetic:android-database-sqlcipher:3.3.1-2@aar'
}
我的 MainActivity 中的代码:
protected void onCreate(Bundle savedInstanceState) {
//...
SQLiteDatabase.loadLibs(this);
}
在 local.properties 中,我指定了 ndk 的路径:
ndk.dir=/Users/me/Desktop/ndk/android-ndk-r10e
我的 gradle.properties:
android.useDeprecatedNdk=true
如果我删除 jni 目录 sqlcipher 效果很好。但我需要这个目录……谁能帮帮我?