我已将基于NDK的应用程序从命令行ant build转换为Android Studio。
Android Studio位于Gradle之上。 Gradle调用CMake来构建C ++代码。
我正在寻找的是为Android目标armv7,arm64,x86等构建一组静态.a文件的方法。
Android Studio项目面向完整的应用程序。
有没有办法让Gradle(或AStudio)只构建静态库(.a),而无需构建应用程序或共享库?
我在linux下使用所有最新的Android内容: Android Studio 3.0 canary4。 NDK 15.0.4075724
答案 0 :(得分:0)
您可以通过以下两种方式在Android Studio和Gradle中构建静态库:
include $(BUILD_STATIC_LIBRARY)
。添加您的CMakeLists.txt
add_library(mylib STATIC
source_file1.cpp
source_file2.
... )
使用Android Studio 2.3+并添加模块的build.gradle
android{
defaultConfig{
externalNativeBuild{
cmake{
\\ add cmake parameters here if you have some
}
}
}
}
然后按Synchronize Gradle Files。 但请记住,您将无法在app.apk中打包(添加)构建的静态库,因此您将无法从Java代码加载cpp代码。您只能在Android应用中加载共享库。