无法解析相应的JNI函数--jsqlite

时间:2017-03-17 07:36:03

标签: java android android-ndk

我正在尝试将一个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

1 个答案:

答案 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