NDK JNI开发配置以及Demo
来源:互联网 发布:超星阅读器windows 编辑:程序博客网 时间:2024/06/03 21:54
NDK开发环境搭建—-AS/EC
本片文章用于讲解windows下android studio 和Eclipse的NDK环境搭建以及Demo展示:
Android Studio搭建
开发软件:
1 NDK下载:https://developer.android.google.cn/ndk/downloads/index.html
2 Cygwin下载:https://cygwin.com/install.html
1. 配置ndk
1)配置NDK的环境变量(在系统环境变量中配置,不赘述):
2)打开Android Studio(后面简称AS),依次点击File->Project Structure->SDK Location,到如下界面,选择你的NDK所在的目录,选择完之后点击ok,就可以了:
2. 配置使用Terminal(如果已经配置跳过)
使用ctrl + alt +s打开settings,然后操作setting->Tools->Terminal,配置cmd.exe这样就可以在Terminal里面做dos命令(后面用来生成jni文件)。
3. 写JniDemo
1) 首先在项目中新建一个类JniClient,如:
这里做一下讲解,这个里面有两个静态方法,都是用native修饰,意思表示是JniClient类里面有两个本地方法helloWord和calculate,但是这里显示的是红色说明我们只是声明,但是AS没有找到这两个方法。下面就来创建方法
2)创建玩JniClient类之后
make 一下项目,AS会在在项目的app\build\intermediates\classes\debug\ zj\guyue\testjni 下创建JniClient.class字节码文件,之后创建jni文件夹如下:
打开AS命令行窗口(View->Tool Window->Terminal)。输入如下命令:
javah -d jni -classpath E:\5-ProjectFile\2-AndroidStudio\TestJNI\app\build\intermediates\classes\debug zj.guyue.testjni.JniClient
可以在刚刚创建的jni文件夹下看到对应的.h文件(生成的文件名称规则:包名_ 类名.h,包名的点变成 _)
3)创建c代码
创建c文件
编写C代码
#include <zj_guyue_testjni_JniClient.h>JNIEXPORT jstring JNICALL Java_zj_guyue_testjni_JniClient_helloWord(JNIEnv *env, jclass obj){ return (*env)->NewStringUTF(env,"guyuelan");}JNIEXPORT jint JNICALL Java_zj_guyue_testjni_JniClient_calculate(JNIEnv *env,jclass obj,jint a,jint b){ return a + b;}
4)配置项目参数
在gradle.properties 里面加上:android.useDeprecatedNdk=true
在gradle的defaultConfig里面添加
ndk{ moduleName "JniClient" // 生成的so文件名 abiFilters "armeabi","x86","armeabi-v7a" //CPU类型 }
5)生成so文件
项目参数配置好之后,直接rebuild一次,然后在项目的build目录下就有对应的so文件。
这样AS的JNI使用就OK了~,至于引用so文件简单的说下:将生成的3个类型的文件夹(含so文件)拷贝到项目的libs文件夹下就可以直接引用了,看下调用结果。
常见的错误解决办法:
- 报错说“….找不到文件”/…Not Found…——>你的NDK本身有问题重新下载一个
- 报错说: ….ndk.cmd….错误———->你在jni文件夹下添加一个空的empty.c文件(为什么这样,我在网上找了很久,说是AS集成jni,不是很友好….目前也没有明确,为什么这么说,你可以去你的jni文件夹下看看你写的c文件,即使编译成功,生成so文件,但是c文件里还是显示红色。)
- NDK JNI开发配置以及Demo
- 手把手教你搭建NDK开发环境以及基于JNI开发的简单DEMO
- JNI配置+NDK自带DEMO详解
- Android Studio NDK-Jni开发小Demo
- android(NDK+JNI)---NDK开发 环境配置
- android NDK/JNI demo
- Android Studio 2.3.3 图解配置NDK开发环境以及Hello Word To jni~
- Android Studio NDK JNI配置Demo超详细2016
- Android Studio NDK JNI配置Demo超详细2016
- JNI之------NDK开发环境的配置
- Eclipse NDK 配置进行jni开发
- Android JNI 开发之NDK环境配置
- Android JNI 开发之NDK环境配置
- ndk配置+android jni开发笔记
- AndroidStudio如何配置NDK/JNI开发环境
- AndroidStudio如何配置NDK/JNI开发环境
- AndroidStudio如何配置NDK/JNI开发环境
- AndroidStudio如何配置NDK/JNI开发环境
- Shell中, 快速创建清空文件内容
- 配置iOS证书 (2) --> 配置P12文件
- ©的代码实现
- 【RxJava】在Android中使用响应式编程
- Ubuntu上进行B/S模式(javaweb)开发,简单框架示例
- NDK JNI开发配置以及Demo
- iOS开发中的关键字const/static/extern
- Android如何让APP进程常驻内存?
- Android开源项目-Easypermissions
- Shell中, 为标准错误输出添加时间戳
- 父子容器
- STM32f103 —— can通信
- java:poi读写2003版excel
- struts2 java.lang.IllegalStateException: getWriter() has already been called for this response(异常解决)