Android Studio NDK配置及使用
来源:互联网 发布:淘宝手机回收靠谱吗 编辑:程序博客网 时间:2024/06/03 17:29
在配置Android Studio NDK环境过程中绕了不少弯路,查阅了不少帖子,说要使用gradle2.5之类的,也都没配置完成。不过好事多磨,最终还是成功配置NDK。废话不多说,现在进入正题。
转载请标明出处
注:本人使用的Android Studio版本为2.1.1
1.下载NDK
在Android Studio按Ctrl+Alt+Shift+S调出Project Structure窗口 如果没下载NDK的点击Download下载即可。可能需要翻墙,去下载翻墙的host即可。
下载成功后NDK会默认放在SDK下的ndk-bundle中
2.JNI的使用
跟平常的方式一样创建一个新项目即可
新建一个java文件JINUtils,代码内容如下。报错可以不用管它。
接着点击Build->Clean Project
然后clean完毕后在点击Rebuild Project
然后在app->build->intermediates ->classes -> debug中可以找到编译出来的class文件。如果找不到,重复上一步操作即可。
接着打开Terminal 输入
cd app/build/intermediates/classes/debug
再输入
javah -jni >javah -jni com.example.ndkdemo.JNIUtils
注意JNIUtils的路径是你自己项目的路径
接着在app->build->intermediates ->classes -> debug中就能找到生成的h文件
接着在app->src->main目录下新建个jni文件夹,并将生成的h文件剪切到jni文件夹中
接着新建c文件,编写逻辑代码
#include "com_example_ndkdemo_JNIUtils.h"JNIEXPORT jint JNICALL Java_com_example_ndkdemo_JNIUtils_getMaxNum (JNIEnv * env, jobject obj, jint num1,jint num2){ if(num1>num2){ return num1; }else{ return num2; }}
接着需要在gradle.properties文件中添加
android.useDeprecatedNdk=true
然后在app下的build.gradle中defaultConfig里添加以下代码
ndk { moduleName "JNIUtils" abiFilters "armeabi", "armeabi-v7a", "x86"} }
接下来在JNIUtils类中加载so库
static { System.loadLibrary("JNIUtils");//跟build.gradle里面设置的so名字一致 }
最后MainActivity中调用JNIUtils的方法并运行
得到正确的结果,至此我们已经成功地调用了c代码。
接下来到app->build ->intermediates->ndk->debug ->lib中我们可以找到编译出来的so文件。
拷贝三个文件夹放到app ->lib文件夹中,删除jni文件夹,运行项目也同样能得到我们要的结果。
本贴至此结束 希望可以给大家带来帮助。
0 0
- Android Studio NDK配置及使用
- Android studio NDK配置使用
- android studio NDK 配置及入门案例
- Android Studio如何下载NDK及使用新的Gradle构建工具配置NDK环境
- Android Studio 中配置和使用NDK
- android studio 配置 NDK
- Android Studio NDK配置
- android studio ndk配置
- Android Studio 配置NDK
- Android Studio 配置NDK
- Android Studio配置NDK
- android studio NDK配置
- Android NDK——配置NDK及使用Android studio开发Hello JNI并简单打包so库
- android studio 使用NDK
- Android Studio NDK使用
- Android Studio 使用NDK
- android studio使用ndk
- android NDK配置及使用demo
- 普元CTO焦烈焱:从程序员到CTO,我在普元的15年成长之路
- java字符集编码问题
- mac 上java连接数据库以及执行数据库操作
- 热补丁HotFix使用
- 判断某一年是否为闰年(Java)
- Android Studio NDK配置及使用
- JavaSE自学笔记整理(一)
- Spring事务原理
- 同步直播(5):数据的正态分布
- 【数学建模】支持向量机代码
- Java I/O系统之InputStream
- 设计模式-行为型-中介者模式(Mediator)
- JMeter学习(二十五)HTTP属性管理器HTTP Cookie Manager、HTTP Request Defaults
- centos7 安装拼音输入法