NDK程序开发流程

  • 首先配置NDK环境
1、在系统环境变量里面创建NDK_ROOT


将NDK_ROOT追加到Path环境变量下-->;%NDK_ROOT%
(;E:\mobile-internet\android-sdk\ndk-bundle)JDK路径
添加完毕后打开cmd,输入ndk-build,出现如下内容则表示成功(网上说是成功的,虽然显示的貌似是一些错误信息,但是后文运行的时候是没问题的可以编译成功)。
验证环境是否配好
  • 进行项目配置
首先在main文件夹下建 jni 文件夹,在里面创建Android.mk文件
复制:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := str
LOCAL_SRC_FILES := str.c
include $(BUILD_SHARED_LIBRARY)
创建Application.mk文件;里面复制
APP_ABI := all


在小黑框里面进入到 jni
ndk-build 进行编译
将main文件夹下生成的libs包里的复制到当前app下的libs里面
然后删除main下的libs,obj文件夹,


再MainActivity里
static {
System. loadLibrary ("str");
}
public native String getKey(int name);
在c文件里将 JNIEXPORT jstring JNICALL Java_com_bwie_test_MainActivity_getKey(自己的包名和方法.用_代替)


报错:
Error:Execution failed for task ':app:compileDebugNdk'.
> Error: Your project contains C++ files but it is not using a supported native build system.
Consider using CMake or ndk-build integration with the stable Android Gradle plugin:
https://developer.android.com/studio/projects/add-native-code.html
or use the experimental plugin:
http://tools.android.com/tech-docs/new-build-system/gradle-experimental.
解决办法:
在build.gradle里添加与buildTypes同级
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = []
}
//吐司查看
Toast. makeText (this,"bb" + getKey(2),Toast. LENGTH_LONG ).show();

你可能感兴趣的:(NDK程序开发流程)