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

Bra*_*ram 5 android gradle android-ndk android-studio

我已经将基于NDK的应用程序从命令行蚂蚁构建过渡到了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

小智 -2

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

  • include $(BUILD_STATIC_LIBRARY)使用 ndk-build 或 gradle-experimental 插件添加模块的 Android.mk 。
  • 添加您的 CMakeLists.txt

    add_library(mylib STATIC
        source_file1.cpp
        source_file2.
        ... )
    
    Run Code Online (Sandbox Code Playgroud)

    使用 Android Studio 2.3+ 并添加到模块的 build.gradle 中

    android{
        defaultConfig{
            externalNativeBuild{
                cmake{
                    \\ add cmake parameters here if you have some
                }
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    然后按同步 Gradle 文件。但永远记住,您将无法将构建的静态库打包(添加)到 app.apk 中,因此您将无法从 java 代码加载 cpp 代码。您只能在 Android 应用程序中加载共享库。

  • 我知道如何为我的应用程序的共享库构建静态库。我有那个工作。我无法管理的是创建一个静态库*而不*同时构建一个Android应用程序。 (2认同)