Qt安卓应用调试APK构建失败:缺失libQt5Svg库求助
安卓Qt应用部署调试遇到UnsatisfiedLinkError问题
开发环境
- Qt Creator 8.0.1
- 套件:Android Qt 5.12.5 Clang armeabi-v7a
- JDK:java-8-openjdk-amd64
- Android NDK 19.2.5345600
- Android构建平台SDK:android-30(与调试真机安卓版本匹配)
错误信息
E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread E AndroidRuntime: Process: x.x.x, PID: 32169 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libQt5Svg_armeabi-v7a.so" not found: needed by /data/app/~~iLirUIB85J_FVJSfM641DA==/x.x.x-3-HqALor76ox7Ss_E3R6nQ==/lib/arm/libQtZint.so in namespace classloader-namespace E AndroidRuntime: at java.lang.Runtime.load0(Runtime.java:939) E AndroidRuntime: at java.lang.System.load(System.java:1628) E AndroidRuntime: at org.qtproject.qt5.android.QtNative$3.run(QtNative.java:223) E AndroidRuntime: at org.qtproject.qt5.android.QtThread$2.run(QtThread.java:87) E AndroidRuntime: at org.qtproject.qt5.android.QtThread$1.run(QtThread.java:61) E AndroidRuntime: at java.lang.Thread.run(Thread.java:923) I Process : Sending signal. PID: 32169 SIG: 9
已尝试操作
- 在“Build Android APK”的构建与运行设置中更换不同的构建平台SDK,问题未解决
解决方案
1. 确认Qt SVG模块依赖与安装
- 打开项目
.pro文件,检查是否添加QT += svg,未添加则补充后重新编译。 - 检查Qt Android套件安装目录(如
Qt/5.12.5/android_armv7/lib),确认libQt5Svg_armeabi-v7a.so存在。若缺失,重新安装Qt Android组件时勾选SVG模块。
2. 调整库打包配置
- 进入Qt Creator项目设置的
Build > Android APK > Libraries选项卡,确认libQt5Svg_armeabi-v7a.so已在打包列表中。未找到则手动点击“Add”,从Qt对应架构路径选择该文件。 - 用NDK的
readelf工具检查第三方库libQtZint.so的依赖:
确认输出包含arm-linux-androideabi-readelf -d libQtZint.so | grep NEEDEDlibQt5Svg.so,并确保该库被打包到APK的lib/arm目录。
3. 清理缓存重新构建
- 删除项目构建目录(如
build-<项目名>-Android_Qt_5_12_5_Clang_armv7-Debug),重新执行qmake、构建和部署操作,避免旧缓存干扰。
4. 检查AndroidManifest.xml配置
- 确认
AndroidManifest.xml中android:extractNativeLibs属性值为true,若为false则修改,确保原生库能被正确解压到可访问路径。
内容的提问来源于stack exchange,提问作者FFC
相关产品推荐
相关产品推荐

