我正在尝试将一个Android项目从Eclipse转移到android studio。该项目使用一个名为jsqlite的特殊数据库。在这个库中有一个名为jsqlite.Database的类,它有一些本机函数。当我鼠标悬停在那些原生函数上时,我收到了消息:
无法解析相应的JNI函数Java_jsqlite_Database__1open 报告Java中的本机方法声明,其中没有 在项目中找到相应的JNI函数
此消息适用于此本机功能:
private native void _open(String filename, int mode)
throws jsqlite.Exception;
项目中有3个.so文件在这些路径中:
app\libs\armeabi\libjsqlite.so
app\libs\armeabi-v7a\libjsqlite.so
app\libs\x86\libjsqlite.so
所以我的猜测是错误的道路。我试图将它们移到其他位置但没有成功。任何想法接下来要尝试什么?
更新
这是我的项目结构:
>app
->manifest
->java
->com.myapp.data
->jsqlite
->jniLibs
->res
答案 0 :(得分: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