有几个消息来源说你应该在src / main /中创建一个名为jniLibs / armeabi的目录,并将你编译的.so文件添加到这个位置。然后使用System.loadLibrary(“nameOflib”)加载库。
我的问题是,当我定义我的功能时
public native long create();
create()给出错误:
无法解析相应的JNI函数Java_com_brendan_myApplication_MainActivity_create。 报告Java中的本机方法声明,其中没有在项目中找到相应的JNI函数。
有什么想法吗?
答案 0 :(得分:3)
事实证明,即使出现错误,我仍然可以调用jni方法 “无法解析相应的JNI函数”。
答案 1 :(得分:1)
要解决该问题,请按照以下步骤操作,然后访问以下链接:
在Android Studio 1.0.2中添加.so库
- 创建文件夹" jniLibs"在" src / main /"
- 将所有.so库放在" src / main / jniLibs"夹
- 文件夹结构如下所示:
| - - app:
| - | --src:
| - | - | --main
| - | - | - | --jniLibs
| - | - - | - | - | --armeabi
| - | - | - | - | - | - 。so文件
- 没有额外的代码只需同步您的项目并运行您的应用程序。
醇>
参考
https://github.com/commonsguy/sqlcipher-gradle/tree/master/src/main
编辑:我想这可能不是配置问题,而是你如何在Android NDK中声明原生方法签名
点击此链接:What is the correct way to write native method signatures in Android NDK?
希望有所帮助