使用Gradle / Android Studio为Android构建独立静态库

时间:2017-06-20 16:28:11

标签: android android-studio gradle android-ndk

我已将基于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

1 个答案:

答案 0 :(得分:0)

您可以通过以下两种方式在Android Studio和Gradle中构建静态库:

  • 使用ndk-build或gradle-experimental插件添加模块的Android.mk 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应用中加载共享库。