2017-03-17 36 views
1

我想將一個Android項目從Eclipse轉移到android studio。該項目使用一個名爲jsqlite的特殊數據庫。在這個庫中有一個名爲jsqlite.Database的類,它有一些本地函數。當我鼠標移到那些原生功能我得到的消息:無法解析相應的JNI函數 - jsqlite

無法解析對應的JNI功能Java_jsqlite_Database__1open 報告在Java本機方法聲明在沒有 相應的JNI功能項目

此消息被發現是此機功能:

private native void _open(String filename, int mode) 
    throws jsqlite.Exception; 

有3個。所以在這些路徑內的項目文件:

app\libs\armeabi\libjsqlite.so 
app\libs\armeabi-v7a\libjsqlite.so 
app\libs\x86\libjsqlite.so 

所以我的猜測是存在錯誤的路徑。我試圖將他們轉移到其他職位,但沒有成功。任何想法接下來要嘗試什麼?

UPDATE

這是我的項目結構:

>app 
->manifest 
->java 
    ->com.myapp.data 
    ->jsqlite 
->jniLibs 
->res 

回答

2

你把庫中錯誤的文件夾。

這應該是正確的路徑:

..\YourProject\app\src\main\jniLibs\armeabi\libjsqlite.so 
..\YourProject\app\src\main\jniLibs\armeabi-v7a\libjsqlite.so 
..\YourProject\app\src\main\jniLibs\x86\libjsqlite.so 
+0

感謝您的答覆。我嘗試了所有可能的路徑,但我仍然得到相同的錯誤。我用我的項目的文件結構更新了我的文章,如果你想檢查一下。 – student

+0

您是否遵循了示例項目[此處]的項目結構(http://www.gaia-gis.it/gaia-sins/spatialite-android/spatialite-for-android-3.0.1.zip)?使用Android Studio,你應該有2個獨立的模塊,一個代表你的應用(spatialite-android),另一個代表庫(spatialite-android-library) – MatPag

+0

不,我沒有。你能指導我嗎? – student