【发布时间】:2016-05-04 17:08:31
【问题描述】:
我对 JNI 完全陌生,我必须使用现有的已编译 .so 文件。 问题是 Android Studio 无法找到 JNI 函数。 我使用与此类似的代码加载我的库:
public class MyService extends Service{
static {
System.loadLibrary("mylib");
}
private native void example();
}
它给了我一个错误“无法解析相应的 JNI 函数 Java_com_company_app_MyService_example”。
如果我运行这个命令(在终端中)
arm-linux-androideabi-nm -DC mylib.so
我得到,在其他人之间(我只需要库的几个功能),
register_com_company_app_service(_JNIEnv*)
(代替MyService有服务)
我能做什么?加载库是否有问题或其他问题?
我也尝试在“服务”中折射类名称“MyService”,但“Java_com_company_app_service_example”也没有解析!
提前致谢!
【问题讨论】:
-
您是否在
build.gradle上实现了该库? -
呃,不……我该怎么办?
-
检查我的答案如何在
AndroidStudio中包含*.so文件,也许可以帮助你,stackoverflow.com/a/33164947/3626214 -
它没有帮助。如果有帮助,我只有(一个)so 文件,没有 jar
-
您是否看到以
Java_开头的导出函数?而且您不应该将-C用于nm命令!
标签: java android android-ndk java-native-interface native