安卓调试问题记录

将之前Qt开发安卓时遇到的一些报错记录下

问题1
  • FAILURE: Build failed with an exception.

解决:

打开build目录->android-build->build.gradle文件。

在文件中repositories {}中,添加两个repositories,jcenter()和mavenLocal()。

复制代码
repositories {
	google()
	mavenCentral()
	jcenter()
	mavenLocal()
}
问题2
  • E AndroidRuntime: FATAL EXCEPTION: qtMainLoopThread:应用程序崩溃,原因是在 qtMainLoopThread 线程中发生了严重的异常错误。
  • E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libm.so.6" not found: needed by /data/app/~~g63H_aUJ749BlXcJiyQHQg==/org.qtproject.example.policeCar_APP-Of8S3Fde8GT2O4XxN4pgnw==/lib/arm64/libavcodec.so in namespace classloader-namespace

解决:

这是应用程序崩溃的具体异常信息,提示 libm.so.6 库文件未找到,而该文件是 libavcodec.so 库文件依赖的必要文件。

因此,你可以尝试以下方法来解决该闪退问题:

检查应用程序权限:根据日志中的提示,应用程序缺少 HIGH_SAMPLING_RATE_SENSORS 权限,需要在 AndroidManifest.xml 文件中添加该权限声明。

检查 Qt 版本:如果你使用的 Qt 版本较老,可以尝试升级到最新版本,以获得更好的兼容性和稳定性。

调试应用程序:使用调试工具对应用程序进行调试,找到崩溃或异常的原因。

需要注意的是,闪退问题可能有多种原因,需要根据具体情况进行调试和排查。如果你无法解决问题,可以尝试查看日志文件或咨询相关技术支持人员,以获得更详细的帮助和支持。

最终解决方案:

在ffmpeg交叉编译的时候加一个编译选项:--disable-doc --extra-ldflags="-L/usr/aarch64-linux-gnu/lib -lm"

其中," " 中间的部分是安装的交叉编译工具链的目录,目录中有libm.so.6库。

问题3
  • error: 注: D:\Qt\6.5.1\android_arm64_v8a\src\android\java\src\org\qtproject\qt\android\bindings\QtActivity.java使用或覆盖了已过时的 API。
    注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
问题4
  • Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Windows
  • Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.macOS
  • Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.iOS
  • Warning: QML import could not be resolved in any of the import paths: com.xdqd.classes
  • Warning: QML import could not be resolved in any of the import paths: HttpRequest

解决方案:

根据编译输出,应用程序已经成功安装到设备上。然而,警告信息中提到的 QML 模块无法被解析,可能会导致应用程序无法正常工作。这些警告信息可能与应用程序闪退的问题无关。

安卓设备上的程序闪退可能是由于各种原因导致的,例如内存不足、权限问题、设备不兼容、应用程序崩溃等。为了确定具体的问题,你可以尝试以下几件事情:

  1. 检查应用程序的权限是否正确设置,并确保应用程序在设备上具有所需的权限。你可以在应用程序的 AndroidManifest.xml 文件中设置应用程序的权限。
  2. 检查应用程序是否在设备上运行时,占用了过多的内存或 CPU 资源。你可以使用 Android Studio 的 Profiler 工具来分析应用程序的性能,并找出性能瓶颈。
  3. 检查应用程序是否与设备不兼容。你可以在应用程序的 build.gradle 文件中设置应用程序的最小 SDK 版本和目标 SDK 版本,以确保应用程序与设备兼容。
  4. 检查应用程序是否有崩溃日志或异常信息。你可以在设备上查看应用程序的日志,并尝试找出可能导致应用程序崩溃的原因。
相关推荐
JJay.6 分钟前
Kotlin 高阶函数学习指南
android·开发语言·kotlin
jinanwuhuaguo10 分钟前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
JJay.1 小时前
Android Kotlin 协程使用指南
android·开发语言·kotlin
C++ 老炮儿的技术栈1 小时前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
BLUcoding2 小时前
Android 布局介绍
android
summerkissyou19872 小时前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
徒 花2 小时前
数据库知识复习05
android·数据库
提子拌饭1334 小时前
番茄时间管理:鸿蒙Flutter 实现的高效时间管理工具
android·flutter·华为·架构·开源·harmonyos·鸿蒙
4311媒体网4 小时前
帝国CMS二次开发实战:精准实现“最新资讯”标识与高亮判断
android
BLUcoding4 小时前
Android 轻量级本地存储 SharedPreferences
android