AndroidStudio NDK项目HelloJni

来源:互联网 发布:MAC上可以玩的游戏 编辑:程序博客网 时间:2024/04/29 19:52

本示例演示使用AndroidStudio自动生成so文件并打包

1.新建一个android项目HelloJni




2.初始项目大约是这样的




3.新建一个类及native方法




4.接下来需要需要生成AppUtils.class文件和AppUtils.class对应的.h头文件


生成class文件方法有两种:通过androidstudio自动生成class文件 ,通过命令行生成class文件 

 - 通过androidstudio自动生成class文件 


项目的class文件存放在 项目名称/app/build/intermediates/classes文件夹之下,如果看不到全部的结构,在下图中更改


classes文件下当前没有AppUtils.class文件,需要重新生成 ,点击菜单Build -> ReBuild Project


接下来通过命令行进入debug文件夹使用javah命令生成.h文件


接下来在main文件夹中新建jni文件夹,然后将刚才生成的.h文件移动到jni文件夹之中



5.使用C/C++实现h文件


在jni文件夹下面新建.cpp文件并实现方法:



6.配置NDK编译



执行编译,然后可能会遇到一点问题:

Error:(14, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
日志显示需要启用 android.useDeprecatedNdk=true ,在gradle.properties加入该选项,如果没有gradle.properties文件自行新建


配置NDK环境:


然后重新Rebuild Project , 注意刚才的命令行如果没有退出,可能会报app:clean 失败,关掉命令行



7.注意接下来坑来了:


build的时候可能会报以下错误:


那么这是什么问题呢,通过baidu google找到答案,如果jni下面只有一个cpp/h文件  就会报错,解决方案就是:新建一个空的文件:


重新编译通过



8最后调用jni方法:



运行项目 完成:



项目DEMO地址:https://github.com/yang7206/HelloJNI_AndroidStudio

1 0
原创粉丝点击