我正在尝试将第三方.so导入到我的android-studio项目中,但我不知道该怎么做。
我的环境:
Ubuntu 14.04, Android-studio 1.4 , Gradle 2.4 ,NDK r10e
那么,有没有人可以帮助我?非常感谢。我做了什么:
但IDE说:
未定义对" ccv_read_impl'
的引用我的项目结构是这样的:
当@sonic说,我在我的MainActivity中添加了System.loadLibrary(" ccv"),但错误仍然存在。
因为我试图使用一个简单的.so来测试如何使用它。我编写了C add函数:int result(int a,int b),并使它成为libadd.so.the其他是全部如上;
答案 0 :(得分:2)
您使用的资源似乎很好。
但是,您应该在.so
内/app/src/main/jniLibs/armeabi-v7
(如果jniLibs
或armeabi-v7
文件夹不存在,请创建它们。
您可以通过运行.so
来检查您的apk包是unzip -l path_to_your_apk
。你应该有一行像your_lib.so
。
最后确保在运行时加载库。你应该在某个时候致电System.loadLibrary("your_lib");
您还可以从谷歌阅读NDK guide。
答案 1 :(得分:0)
除了如何使用Android Studio组织环境的学习曲线外,我担心您在此处遇到一个主要障碍:ccv library does not have a suppored Java wrapper 。您可以为Android构建二进制文件,但不能直接从Java调用其函数。
通用包装器可能是一笔巨大的投资,但对社区的贡献很大。另一方面,如果您的应用程序需要Computer Vision的一些非常具体的响应,您可能会伪造一个专门的JNI包装器。不过,这不是一个即插即用的任务。