大部分情况下都是用CMake编译.so库,项目中要编译成二进制可执行文件,折腾了一阵 记录一下。
在网上一阵google,找到了这篇文件:android JNI运行NDK编译成的可执行文件 ,试了一下是可以运行的。使用ndkBuild方式,要自己写Android.mk,在module的build.gradle中配置:
externalNativeBuild { ndkBuild { path file("src/main/jni/Android.mk") }}
当时没看到编译出来的二进制文件在哪,找了一下原来在 Jnidemo-master/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_output.txt 中找写:NDK_OUT=XXX/Jnidemo-master/app/build/intermediates/ndkBuild/debug/obj
但是它是自己写Android.mk,现在都是CMake方式,不写Android.mk了。于是找到了这篇:executable binaries in Android with Android Studio 2.2 and CMake
CMakeLists.txt
app中的build.gradle中:
输出的文件在 app/.externalNativeBuild/cmake/debug/arm64-v8a/cmake_build_command.txt中有写:DCMAKE_LIBRARY_OUTPUT_DIRECTORY=XXX/app/build/intermediates/cmake/debug/obj/arm64-v8a