【发布时间】:2016-09-19 21:13:05
【问题描述】:
我关注了http://kn-gloryo.github.io/Build_NDK_AndroidStudio_detail/,效果很好!但是,我想在一个新的 Android 应用程序中使用生成的 .so 库,而我根本不知道该怎么做……我已经苦苦挣扎了好几天,如果可以分享任何分步教程那会很有帮助!
这是我用来生成 .so 文件的 Android 项目 MyApp:
主要活动:
Java 类:MyNDK
头文件:com_demo_ble_myapp_MyNDK.h
Cpp 文件:我的图书馆
这是我的新Android项目useSOLib的结构,我只是将所有so文件从MyApp\app\src\main\libs复制到 useSoLib\app\src\main\jniLibs
这是 useSoLib 中的 MainActivity:
我可以 Build-> Make Project 成功,但是当我在设备上运行它时,应用程序显示“不幸的是,useSoLib 已停止。”并粉碎。我知道我在这里错过了一些步骤,但我是 Android Studio 的新手,所以我不知道应该从哪里开始......提前感谢您的任何建议! :)
【问题讨论】:
-
您的本机代码可能有问题。您是否尝试过使用 log 或 gdb 来检查您的代码的哪一行导致了异常?
-
感谢您的回复!在MyApp项目的MainActivety中(我用来生成.so库),我新建了一个MyNDK的实例,叫做原生函数getMyString,它在设备上运行成功,我也可以在里面看到正确返回的String我的 logcat,所以我假设本机 C++ 函数运行良好。就在我尝试使用不同的包名从其他 Android 项目访问生成的 .so 库时,它崩溃了……我还在上面添加了我的头文件和 cpp 文件以供参考。
-
您的代码错误。看我的回答。您必须导出 Java 类并使用 *.so 文件将其导入新项目。
标签: java android-studio android-ndk java-native-interface shared-libraries