在这里必须NDK坏境搭建号的情况下
第一步 建android 工程
第二步 写jni调用类
public native String getStringData();
static{
System.loadLibrary("name"); 这个name一定要和app,grable里面moduleName一致
}
第三步 android studio 导航栏 Build里面Rebuild Project 点击
把项目切换Project 查看app/build/inttermediates下的classes有没有生成,没有生成继续重复
第四步 找到Terminal在里面输入cd app/build/inttermediates/classes/debug 回车
再输入 javah -jni“你的jni调用类路径” 成功后可以在app/build/inttermediates/classes/debug下看到生成的h文件
第五步 然后在main方法下建jni文件 把app/build/inttermediates/classes/debug生成的h文件 copy到这下面
在jni文件下建c/c++ Source 选择c后缀的文件,在文件里写#include "导入你生成的h文件" 把h文件JNIEXPORI........(JNIEnv *env,jclass job){
return (*env )->NewStringUTF (env,"hello")} 如果这个爆红的话 那你就去配置File/Project Structure/NDK 你安装的路径 在这里我要提醒下 ,NDK下载的必须要和你系统32/64一致 不然会报AndroidStudio/NDK - finished with non-zero exit value2等错无法找到ndk-build.cmd
第六步 在gradle.properties 最后加上android.useDeprecatedNdk=true <注意大小写>
第七步 在app build.gradle里面defaultConfig{ 添加
ndk{
moduleName "name" 这个name一定要和jni调用类里面name一致
abiFilters "armeabi","armeabi-v7a","x86"
}
}
然后就编译 他们生成的so 文件在app/build/inttermediates/ndk/debug/lib下