天天看点

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

参考https://blog.csdn.net/zhouyingge1104/article/details/73749350

so包需要调用native方法时,已编译好的so包包名已经写死,若无法找到想要的配置文件重新编译so包,可以在java文件夹下新建原项目包名同名package,如下图:

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

标题

RTSPClient为含有native方法的类,so包中对应实现方法为

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题
需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

附ndk编译so包步骤(live555为例):

1.Android studio 工程目录下新建jni文件夹,复制c++项目至jni文件夹下的live文件夹;

2.jni文件夹下,新建Android.mk和Application.mk(内容如下);

3.项目 gradle.properties 文件最后一行加上 android.useDeprecatedNdk=true;

4.创建类和native方法,编译后在F:\work_space\TestRtsPlay2\app\build\intermediates\classes\debug  找到对应.class文件,命令行使用javah命令生成.h文件;

5.c++代码引用.h文件实现native方法;

6.项目文件夹下,命令行输入ndk-build进行编译,编译成功项目中jni同级别目录下会有obj文件夹,里面有各cpu对应so包,复制到lib或jnilibs中即可;

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

Android.mk

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

Application.mk

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

class类生成的.h文件

需调用JAVA native方法的.so包复制到其他项目 No implementation found for native 问题

项目结构

继续阅读