2011-11-18 203 views
3

我正在嘗試將SQLCipher添加到我的項目中。我能夠將jar文件鏈接到項目,但鏈接提供的.so文件時出現問題。將.so文件添加到Android項目

由於我得到UnSatisfiedLinkError當我嘗試打開數據庫。

任何人都可以請讓我知道最好的方式來添加.so文件到項目並讓它運行。

回答

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」): 
+0

可以讓我知道你是如何將.so文件添加到項目中的...... –

+0

你不會將.so文件添加到項目中。您只需將它們放在與jar文件相同的文件夾中名爲'armeabi'的文件夾中即可。這些jar文件會在您從代碼中調用'SQLiteDatabase.loadLibs'時自動加載這些.so文件。 – Caner

+0

完成相同的許多時間,但我仍然gettingjava.lang.UnsatisfiedLinkError:dbopen –

0

你可以使用adb shell命令來驗證哪些文件被部署到模擬器已經解包後。我看到過.so文件沒有打包在.apk文件中的問題,這是由於IDE未指向您的應用程序的正確本機庫路徑。

相關問題