【发布时间】:2023-04-09 02:57:01
【问题描述】:
我正在尝试将第三方 .so 导入到我的 android-studio 项目中,但我不知道该怎么做。
我的环境:
Ubuntu 14.04、Android-studio 1.4、Gradle 2.4、NDK r10e
那么,有没有人可以帮助我?非常感谢。
我做了什么:
- 下载ccv(github.com/liuliu/ccv)源码,然后使用arm-linux-androideabi-gcc获取libccv.so文件。
- 将 libccv.so 文件复制到文件夹 /src/main/jniLibs/armeabi 中
- int 主activity system.LoadLibrary("ccv"),然后调用ccv 的函数ccv_read_impl。
但 IDE 说:
对“ccv_read_impl”的未定义引用
我的项目结构是这样的:
正如@sonic 所说,我在 MainActivity 中添加了 System.loadLibrary("ccv"),但错误仍然存在。
因为我正在尝试使用一个简单的.so来测试如何使用它。我编写了C添加函数:int result(int a,int b),并使其成为libadd.so。其他的都是以上;
【问题讨论】:
-
“对我没用” 有点含糊,不是吗?您能否逐步分析您的结果与预期不同的地方?
-
是的。我已经编辑了我的问题。
-
> 但 IDE 说:未定义对 'ccv_read_impl' 的引用。 IDE到底在哪里说的?也许最好的方法是添加带有此消息的屏幕截图
-
好的,我会发图片
-
jni 目录(折叠在您的screenshot 中)的内容是什么?您的 MainActivity.java 是否定义了
private native int result(int a, int b);?
标签: android android-ndk java-native-interface android-gradle-plugin .so