android studio 3.4配置Android -jni 开发基础的教程详解

首先下载配置android studio ndk

1.打开sdkManager下载CMake和LLDB

android studio 3.4配置Android -jni 开发基础的教程详解


2.配置ndk

android studio 3.4配置Android -jni 开发基础的教程详解


项目新建

android studio 3.4配置Android -jni 开发基础的教程详解


项目建立完毕后,工程目录如下,cpp文件夹是系统自动生成的

android studio 3.4配置Android -jni 开发基础的教程详解


3.自定义 navite方法

接下来开始写自定义的一个native方法,新建一个Hello.java文件,里面写一个add求和的native方法,如下

android studio 3.4配置Android -jni 开发基础的教程详解


生成c++头文件

然后在windows控制台Terminal进入hello.java所在的目录执行javac hello.java,如下

android studio 3.4配置Android -jni 开发基础的教程详解


执行完毕后hello.java的同级目录下面会生成一个Hello.class文件,证明这一步成功啦!

android studio 3.4配置Android -jni 开发基础的教程详解


然后还是在Terminal控制台上面回退目录到app/src/main下面执行命令

javah -d jni -classpath ./java com.example.myapplication.hello,后面是包名+文件名不带后缀,请改成自己的包名,如图

android studio 3.4配置Android -jni 开发基础的教程详解


命令执行完毕后会在app/src/main目录下面生成一个jni文件夹,文件夹下面有一个.h后缀文件,如图:

android studio 3.4配置Android -jni 开发基础的教程详解


新建cpp文件实现navtive 方法

android studio 3.4配置Android -jni 开发基础的教程详解


com_example_myapplication_hello.h

中的内容复制一份到myjni.cpp中,并添加

com_example_myapplication_hello.h

的引用(引用要改成引号,不然下面的方法会报红哦~),删掉其他代码,如图

android studio 3.4配置Android -jni 开发基础的教程详解


经过测试Cmake必须将获得的建立在cpp文件才能编译通过

android studio 3.4配置Android -jni 开发基础的教程详解


配置CMakeLists.txt文件

接下来是关键,在android studio3.0以前是没有此步骤的,大家看工程目录里面有一个CMakeLists.txt文件,这个文件是新建项目是自动生成的,里面已经写好了系统自动生成的

cpp/native-lib.cpp文件的配置,打开CMakeLists.txt文件,如下,

android studio 3.4配置Android -jni 开发基础的教程详解


android studio 3.4配置Android -jni 开发基础的教程详解


调用native方法

到此我们基本上已经成功了,然后在Hello.java中添加代码如下,添加的library名字一定要和上图中添加的一样:

android studio 3.4配置Android -jni 开发基础的教程详解


最后在activity中调用add方法,

android studio 3.4配置Android -jni 开发基础的教程详解


android studio 3.4配置Android -jni 开发基础的教程详解


出错的地方总结:

cmake 编译会经常提示编译失败

android studio 3.4配置Android -jni 开发基础的教程详解


出现cmake编译失败请在这里找寻错误

总结

以上所述是小编给大家介绍的android studio 3.4配置Android -jni 开发基础的教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...