Android Studio NDK配置

一、关联NDK开发库

在Project Structure直接导入NDK或者在local.propertise里手动添加NDK路径

导入之后再local.propertise可以看到SDK及NDK路径


二、创建native方法

public class Ndk {
static{
System.loadLibrary("MyJni");
}

public native String getMsg();
}
然后Build->Make Project一下,目的就是编译成对应的class文件。
在Terminal命令控制台根据生成的class文件,利用javah生成对应的 .h头文件。如果没有编译就执行javah命令会提示找不到这个类文件的。
进入该项目main文件夹
cd app\src\main
生成.h头文件
javah -d jni -classpath D:/sdk/platfroms/android-23/android.jar;../../build/intermediates/classes/debug com.tl.ndkdemo.MainActivity
说明:
-d jni 在工程下生成jni目录,存放生成的c/c++源文件
-classpath D:/sdk/platfroms/android-23/android.jar SDK文件下相应版本的android.jar所在的文件位置
../../build/intermediates/classes/debug example.daosong.com.ndkdemo.ndk 是Ndk.java编译后对应的class文件。文件目录如下

   
   

三、编写C/C++代码
在生成的jni目录下编译c/c++源代码
#include "com_tl_ndkdemo_Ndk.h"
#include <jni.h>

JNIEXPORT jstring JNICALL Java_com_tl_ndkdemo_Ndk_getMsg
(JNIEnv *env, jobject thiz) {
return (*env)->NewStringUTF(env, "NDK 测试成功");
}


四、
配置
1、在mudle的gradle.build

ndk {
moduleName "myJni" //ndk库名
ldLibs "log"//导入NDK库
abiFilters "armeabi", "armeabi-v7a", "x86" //适应平台
}
2、在project的gradle.propertise中添加
android.useDeprecatedNdk=true


五、可能异常,可尝试以下几种方法

1、可在moudle的gradle.build的android节点下添加

sourceSets.main {
jni.srcDirs = ["src/main/jni"]
}


2、有时会出现将../../build/intermediates/ndk下的android.mk复制到jni目录下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值