Почему мои собственные библиотеки не копируются в apk? - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь создать приложение для 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 голосов
/ 02 января 2019

Если вы спрашиваете о этом хранилище , то ваша проблема заключается в src/android/app/src/main/cpp/CMakeLists.txt:

add_library(citra-android STATIC
        dummy.cpp
        )

Вы должны использовать SHARED вместо STATIC для Gradle для генерации общего объектного файла (.so) вместо .a файла.

Надеюсь, это поможет, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...