我正在尝试将SQLCipher添加到我的项目中。我能够将jar文件链接到项目,但是链接提供的.so文件存在问题。
由于我在尝试打开数据库时遇到UnSatisfiedLinkError。
任何人都可以让我知道将.so文件添加到项目并使其运行的最佳方法。
答案 0 :(得分:4)
除了jar文件,您还需要包含.so文件。在我的项目中,我有:
jar files in project_root/libs/
.so files in project_root/libs/armeabi/
还要确保已正确添加.jar文件。转到Project Properties -> Java Build Path -> Libraries
标签,确保添加commonc-codec.jar
,gueva-r09.jar
,sqlcipher.jar
。
编辑
1) Add a single sqlcipher.jar and a few .so’s to the application libs directory
2) Update the import path from android.database.sqlite.* to info.guardianproject.database.sqlite.* in any source files that reference it. The original android.database.Cursor can still be used unchanged.
3) Init the database in onCreate() and pass a variable argument to the open database method with a password*:
SQLiteDatabase.loadLibs(this); //first init the db libraries with the context
SQLiteOpenHelper.getWritableDatabase(“thisismysecret”):
答案 1 :(得分:0)
是否可以使用adb shell命令验证解压缩后哪些文件部署到模拟器。我之前看到.so文件没有打包在.apk文件中的问题,这是由于IDE未指向应用程序的正确本机库路径。