为什么我的本机库没有复制到apk中?

时间:2019-01-02 04:23:54

标签: android-ndk

我正在尝试使用一些本机库构建一个android应用程序。 NDK成功构建了库,我可以在...\app\.externalNativeBuild\cmake\debug\arm64-v8a\src\<library>\lib<library>.a

中看到它们

但是,当我运行该应用程序时,出现一个无法满足的链接错误,并且当我分析APK时,找不到本地库;仅libc ++ _ shared.so。 这是应用程序build.gradle的相关部分:

externalNativeBuild {
    cmake {
        version "3.10.2"
        path "../../../CMakeLists.txt"
    }
}

defaultConfig {
    externalNativeBuild {
        cmake {
            arguments "-DENABLE_QT=0", // Don't use QT
                    "-DENABLE_SDL2=0", // Don't use SDL
                    "-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work
                    "-DENABLE_CUBEB=0",
                    "-DANDROID_STL=c++_shared"

            abiFilters 'arm64-v8a'

            targets "citra-android"
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果您要询问this repository,那么您的问题出在src/android/app/src/main/cpp/CMakeLists.txt

add_library(citra-android STATIC
        dummy.cpp
        )

您应该使用SHARED而不是STATIC来使Gradle生成共享对象文件(.so)而不是.a文件。

希望能有所帮助,谢谢。