Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Как добавить стороннюю *.so в *.apk (android, qtcreator)?



  • Всем добрый день,
    Позавчера первый раз в своей жизни запустил qtcreator, поэтому практически ничего о этой IDE не знаю. Задача следующая - имеется проект, собираемый в qtcreator-e для android-а, под armv7a. У меня есть сторонняя библиотека, собранная под эту же платформу и код, который её использует. Код я добавил, сборку - наладил. Однако, при запуске на платформе вижу в логе следующие строки:
    @E/AndroidRuntime(19468): java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "liblinphonearmv7.so" needed by "libTrogl.so"; caused by load_library(linker.cpp:745): library "liblinphonearmv7.so" not found@
    Эта библиотека используется моим кодом. Так как в каталоге программы на платформе я не вижу этой библиотеки, то предполагаю, что её просто нет в *.apk. Попытался нагуглить - ничего толкового не обнаружил. Подскажите, кто в теме, как добавить данную стороннюю библиотеку в *.apk?
    Ещё один странный момент - закинул на устройство все нужные сторонние библиотеки в каталог /data/data/org.some_app/lib программы, но при старте через Activity Manager - приложение стартует и завершается с той же ошибкой. Пробовал в /data/local - то же самое. Подскажите, не меняет ли am текущего каталога при запуске приложения?
    Если пост не вписывается в формат русской ветки этого форума - дайте знать, перепощу в общую, в английскую.



  • Вы можете просмотреть содержимое apk разжав его архиватором, это обычный zip.

    Я полагаю, файл pro содержит LIBS += ... и построение не имеет ошибок компоновки.

    .\android\libs\armeabi-v7a содержит бибилиотеки копируемые на устройство
    .\android\res\values\libs.xml список библиотек для копирования

    Собственно, пока, все, чем могу помочь.


Log in to reply