APK build suddenly missing libraries
Unsolved
Mobile and Embedded
-
My scripts to build the Android version of our app has been working for months.
The last week, it suddenly started to generate an APK that was 20Mb smaller than normal, and would not run at all (silent failure, no errors) .
I compared the old working APK with the new one and found the following differences (missing files) (output is the
diff
of the files in the APK file list):< ./assets/--Added-by-androiddeployqt--/qml/QtQuick/LocalStorage < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/LocalStorage/plugins.qmltypes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/LocalStorage/qmldir < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Particles.2 < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Particles.2/plugins.qmltypes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Particles.2/qmldir 887,895d881 < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Scene2D < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Scene2D/plugins.qmltypes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Scene2D/qmldir < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Scene3D < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Scene3D/plugins.qmltypes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Scene3D/qmldir < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Shapes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Shapes/plugins.qmltypes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/Shapes/qmldir 902,904d887 < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/XmlListModel < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/XmlListModel/plugins.qmltypes < ./assets/--Added-by-androiddeployqt--/qml/QtQuick/XmlListModel/qmldir 919,921d901 < ./lib/armeabi-v7a/libplugins_gamepads_libandroidgamepad.so < ./lib/armeabi-v7a/libplugins_geometryloaders_libdefaultgeometryloader.so < ./lib/armeabi-v7a/libplugins_geometryloaders_libgltfgeometryloader.so 946d925 < ./lib/armeabi-v7a/libplugins_sqldrivers_libqsqlite.so 969,970d947 < ./lib/armeabi-v7a/libqml_QtQuick_LocalStorage_libqmllocalstorageplugin.so < ./lib/armeabi-v7a/libqml_QtQuick_Particles.2_libparticlesplugin.so 972,974d948 < ./lib/armeabi-v7a/libqml_QtQuick_Scene2D_libqtquickscene2dplugin.so < ./lib/armeabi-v7a/libqml_QtQuick_Scene3D_libqtquickscene3dplugin.so < ./lib/armeabi-v7a/libqml_QtQuick_Shapes_libqmlshapesplugin.so 977d950 < ./lib/armeabi-v7a/libqml_QtQuick_XmlListModel_libqmlxmllistmodelplugin.so 981,987d953 < ./lib/armeabi-v7a/libQt53DAnimation.so < ./lib/armeabi-v7a/libQt53DCore.so < ./lib/armeabi-v7a/libQt53DInput.so < ./lib/armeabi-v7a/libQt53DLogic.so < ./lib/armeabi-v7a/libQt53DQuick.so < ./lib/armeabi-v7a/libQt53DQuickScene2D.so < ./lib/armeabi-v7a/libQt53DRender.so 989d954 < ./lib/armeabi-v7a/libQt5Concurrent.so 991d955 < ./lib/armeabi-v7a/libQt5Gamepad.so 1002d965 < ./lib/armeabi-v7a/libQt5QuickShapes.so 1006d968 < ./lib/armeabi-v7a/libQt5Sql.so 1011d972 < ./lib/armeabi-v7a/libQt5XmlPatterns.so
The scripts (abridged) is:
export ANDROID_SDK_ROOT=/shared/DevTools/Android/SDK-r25.2.5 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export ANDROID_HOME=/shared/DevTools/Android/SDK-r25.2.5 export ANDROID_NDK_ROOT=/opt/android-ndk/android-ndk-r19c export ANDROID_NDK_HOST=linux-x86_64 export ANDROID_NDK_PLATFORM=android-16 export ANDROID_TARGET_PLATFORM=android-19 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export ANDROID_NDK_TOOLCHAIN_PREFIX=arm-linux-androideabi export ANDROID_NDK_TOOLCHAIN_VERSION=4.9 export ANDROID_NDK_TOOLS_PREFIX=arm-linux-androideabi export ANDROID_TARGET_ARCH=armeabi-v7a BUILD_OUT=/output QT_AND_PATH=/opt/Qt5.12.3/5.12.3/android_armv7/bin export CFLAGS="-m32" export LDFLAGS="-m32" THREADS=2 make clean make -j $THREADS > /dev/null make install INSTALL_ROOT=$BUILD_OUT > /dev/null VB="--verbose" CERTFILE=/certs/android.keystore PWD_KEYSTORE=KSXXX PWD_KEY=PSXXX $QT_AND_PATH/androiddeployqt $VB --output $BUILD_OUT --input android-libApp.so-deployment-settings.json --no-strip --deployment bundled --android-platform $ANDROID_TARGET_PLATFORM --gradle --sign $CERTFILE $CERTFILE --storepass $PWD_KEYSTORE --keypass $PWD_KEY
I tried adding the missing libs into the imports.xml but it does not make a difference:
import QtQuick 2.0 import QtWebView 1.1 import QtGraphicalEffects import QtMultimedia import QtQml import QtQuick import QtQuick.LocalStorage //import QtQuick.Particles.2 import QtQuick.Scene2D import QtQuick.Scene3D import QtQuick.Shapes import QtQuick.XmlListModel Component {}
Qt version is Qt 5.12.3.