AndroidStudio NDK项目HelloJni

本示例演示使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值