Невозможно загрузить libnative-activity.so, когда для CMAKE_BUILD_TYPE установлено что-либо кроме отладки - PullRequest
0 голосов
/ 23 января 2019

После обновления NDK до версии 19 мое приложение выдает UnsatisfiedLinkError с таким сообщением "Невозможно загрузить собственную библиотеку "/data/app/com.company.appname-SkXFrxADQ610MNjJr7Ak3A==/lib/arm64/libnative-activity.so": null" при запуске, а затем завершается.

Кто-нибудь знает, что является причиной этой ошибки и как ее устранить?

Примечания:

1) Если для CMAKE_BUILD_TYPE установлено значение Debug, все работает нормально, независимо от уровня оптимизации (-O) или настройки DEBUG_MODE.

2) Этого не было до 19 NDK *

3) Я вызываю app_dummy (), хотя вызов устарел и не нужен

4) Приложение использует android_native_app_glue.h / .c, т.е. вообще не имеет языка Java.

5) Имя библиотеки исключений - «native-activity», а funcname - «ANativeActivity_onCreate»

Обновление:

Из истории изменений NDK r19 Google говорит ndk-depends has been removed. We believe that ReLinker is a better solution to native library loading issues on old Android versions. Я полагаю, что это уместно, предположив, что ndk-зависит, сохранил нативную активность, но как нативное приложение склеивания не содержит никакого кода Java, как можно Я применяю ReLinker из кода?

1 Ответ

0 голосов
/ 31 января 2019

fread_unlocked недоступен до Android P. Вы не можете использовать эту функцию в приложении с minSdkVersion ниже 28.

Это не должно быть скомпилировано, если вы не далиCВведите неправильный ANDROID_PLATFORM, так как символ не был бы доступен для ссылки.Если вы создаете свое приложение с Gradle и externalNativeBuild, тогда Gradle настраивает его для вас на основе вашего minSdkVersion.Если это не так, вам, вероятно, следует перейти на его использование, поскольку оно обеспечивает эти меры безопасности.

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