安卓调试问题记录

将之前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. 检查应用程序是否有崩溃日志或异常信息。你可以在设备上查看应用程序的日志,并尝试找出可能导致应用程序崩溃的原因。
相关推荐
贺biubiu1 天前
2025 年终总结|总有那么一个人,会让你千里奔赴...
android·程序员·年终总结
xuekai200809011 天前
mysql-组复制 -8.4.7 主从搭建
android·adb
nono牛1 天前
ps -A|grep gate
android
小温冲冲1 天前
QtObject 详解:QML 中的轻量级数据容器
qt
未知名Android用户1 天前
Android动态变化渐变背景
android
huwei8531 天前
Q打印表格内容类
开发语言·qt
nono牛1 天前
Gatekeeper 的精确定义
android
stevenzqzq1 天前
android启动初始化和注入理解3
android
城东米粉儿1 天前
compose 状态提升 笔记
android
粤M温同学1 天前
Android 实现沉浸式状态栏
android