我正在嘗試將SQLCipher添加到我的項目中。我能夠將jar文件鏈接到項目,但鏈接提供的.so文件時出現問題。將.so文件添加到Android項目
由於我得到UnSatisfiedLinkError當我嘗試打開數據庫。
任何人都可以請讓我知道最好的方式來添加.so文件到項目並讓它運行。
我正在嘗試將SQLCipher添加到我的項目中。我能夠將jar文件鏈接到項目,但鏈接提供的.so文件時出現問題。將.so文件添加到Android項目
由於我得到UnSatisfiedLinkError當我嘗試打開數據庫。
任何人都可以請讓我知道最好的方式來添加.so文件到項目並讓它運行。
除了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」):
你可以使用adb shell命令來驗證哪些文件被部署到模擬器已經解包後。我看到過.so文件沒有打包在.apk文件中的問題,這是由於IDE未指向您的應用程序的正確本機庫路徑。
可以讓我知道你是如何將.so文件添加到項目中的...... –
你不會將.so文件添加到項目中。您只需將它們放在與jar文件相同的文件夾中名爲'armeabi'的文件夾中即可。這些jar文件會在您從代碼中調用'SQLiteDatabase.loadLibs'時自動加載這些.so文件。 – Caner
完成相同的許多時間,但我仍然gettingjava.lang.UnsatisfiedLinkError:dbopen –