详细配置使用请移步:
android studio NDK 编译
第一步:
app/build.gradle下面
添加代码:
ndk { moduleName "app" // <-- This is the name of my C++ module! cFlags "-DANDROID_NDK " // Define some macros ldLibs "EGL", "GLESv3", "dl", "log" // Link with these libraries! stl "stlport_shared" }
具体如下:
第二步:
在local.properties文件中 配置好本地NDK的路径,比如我的:
ndk.dir=/Users/cinba/Library/android-ndk-r10esdk.dir=/Users/cinba/Library/android-sdk
第三步:
在main下面建立jni文件夹:吧相关的文件放进来
第四步:
然后 build-> make project,so文件就生成好了;
位置在 目录 app/build/intermediates/ndk/下面;
第五步:
将生成好的so文件copy到我们的jniLibs文件夹中即可;
补充:
这样配置每次都会自动编辑c文件,如果不要每次都ndk编译话,把gradle中的ndk配置注释掉,然后so文件copy到我们的jniLibs中即可!
解决办法:
在gradle.properties 文件里面添加 android.useDeprecatedNdk=true 后重新编译即可
遇到的问题:
make.exe: *** No rule to make target `D:\AndroidStudioProjects\project\app\build\intermediates\ndk\umeng\debug\obj/local/arm64-v8a/objs/app/D_\AndroidStudioProjects\project\app\src\main\jni', needed by `D:\AndroidStudioProjects\project\app\build\intermediates\ndk\umeng\debug\obj/local/arm64-v8a/objs/app/D_\AndroidStudioProjects\project\app\src\main\jni\tag.o'. Stop.
在Windows下NDK一个bug,当仅仅编译一个文件时出现会出现此问题,解决方法就是 再往jni文件夹加入一个空util.c文件即可
问题参考资料:http://blog.csdn.net/sodino/article/details/41946607