大部分情況下都是用CMake編譯.so庫(kù),項(xiàng)目中要編譯成二進(jìn)制可執(zhí)行文件,折騰了一陣 記錄一下。
在網(wǎng)上一陣google,找到了這篇文件:android JNI運(yùn)行NDK編譯成的可執(zhí)行文件?,試了一下是可以運(yùn)行的。使用ndkBuild方式,要自己寫(xiě)Android.mk,在module的build.gradle中配置:
externalNativeBuild { ndkBuild { path file("src/main/jni/Android.mk") }}
當(dāng)時(shí)沒(méi)看到編譯出來(lái)的二進(jìn)制文件在哪,找了一下原來(lái)在?Jnidemo-master/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_output.txt 中找寫(xiě):NDK_OUT=XXX/Jnidemo-master/app/build/intermediates/ndkBuild/debug/obj
但是它是自己寫(xiě)Android.mk,現(xiàn)在都是CMake方式,不寫(xiě)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中有寫(xiě):DCMAKE_LIBRARY_OUTPUT_DIRECTORY=XXX/app/build/intermediates/cmake/debug/obj/arm64-v8a