使用Gradle/Android Studio为Android构建独立静态库
问题描述:
我已将基于NDK的应用程序从命令行ant构建过渡到Android Studio。使用Gradle/Android Studio为Android构建独立静态库
Android Studio被放置在Gradle之上。 Gradle调用CMake来构建C++代码。
我所寻求的是建立只是一组静态.a文件为Android的ARMv7目标,arm64,X86的方式等
的Android Studio项目正朝着完整的应用程序为目标。
有没有一种方法让Gradle(或AStudio)只构建静态库(.a),而不构建应用程序或共享库?
我在Linux下使用所有最新的Android工具: Android Studio 3.0 canary4。 NDK 15.0.4075724
答
您可以在此建2种方式的Android Studio和摇篮静态库:
- 添加在你的模块的Android.mk
include $(BUILD_STATIC_LIBRARY)
,即使用NDK建造或gradle这个实验性的插件。 -
添加在使用Android 2.3以上版本的工作室在你的模块的build.gradle
android{ defaultConfig{ externalNativeBuild{ cmake{ \\ add cmake parameters here if you have some } } } }
添加,然后按同步摇篮文件你的CMakeLists.txt
add_library(mylib STATIC source_file1.cpp source_file2. ...)
。 但是一定要记住,你将无法在你的app.apk中打包(添加)已建立的静态库,因此你将无法从java代码中加载cpp代码。您只能在Android应用程序中加载共享库。
如果您使用的是带有Ant的make文件,您仍然可以移动并使用相同的make文件,方法是调用gradle.NDK属性以使用“legacy”。 https://ph0b.com/new-android-studio-ndk-support/“使用android.mk”.... –