【发布时间】:2021-11-01 19:43:30
【问题描述】:
我使用的是 Linux Mint 20.X 发行版。
我使用online installer 安装了开源Qt Creator,主要针对使用C/C++ 构建原生Android 应用程序。
我没有使用 Qt Creator 的经验,所以我花了几天时间试图弄清楚如何安装、什么版本、版本中是否存在错误等。
由于使用 C++ 构建原生 Android 应用程序需要使用包含许多子组件的 Qt Creator,我意识到会有很多不同的配置和它们之间可能的不兼容。
首先,我附上我的 Qt Creator 设置的基本信息屏幕截图:
关于对话框:基于 Qt 5.15.2(GCC 7.3.1 20180303,Red hat 7.3.1-5 64 位)
我正在使用 Oracle Java JDK 16.0.2 64 位,但也尝试了发行版存储库中的 openJDK。
在 Tools->Options->Qt Versions 中,我可以在 auto-detected 部分看到 6.13,在手册中看到 5.12.8(可能是以前的安装尝试遗留下来的)
在 Tools->Options->Devices->Android 中我可以看到 Java 被报告为 OK,SDK 位置是我在安装过程中被 Qt 创建者提示后定义的位置,NDK 列表是 /home/manos/Android /sdk/ndk/21.3.6528147。我可以看到一个绿色勾号,上面写着“Android 设置正常(SDK 版本 5.0,NDK 版本 21.3.6528147)”
我在 AVD 选项卡下的同一对话框底部创建了两个 Android 虚拟设备,并在 SDK 选项卡下勾选并安装了适用于 Android 10 和 11 的 SDK 平台和 API。
安装 Qt Creator 后,我直接进入工具->选项,在那里我可以下载 Qt Creator 所需的所有组件。
确认许可证后一切顺利。
接下来,我创建了一个桌面电脑新应用程序,该应用程序也顺利构建,没有错误。
然后我按照以下屏幕截图创建了我的第一个 Android 应用程序:
在新建项目对话框中,我选择了 Qt Quick Application - Empty。
在项目位置中,我将项目文件夹命名为“new-mobile-app-ARM64-v8a”,并在字段值中创建为 /home/manos/Projects/Qt-Creator。
在定义构建系统对话框中,我选择了 qmake。
在必需的 Qt 版本中 - 我选择了版本。 6 从包含 5.12、5.13、5.14、5.15 和 6.0 的下拉列表中选择。
在套件选择对话框中,我选择了 ARM64-v8a clang 编译器。
创建项目后,我没有收到任何错误。 尝试构建它时出现以下错误:
无法初始化类 org.codehaus.groovy.runtime.InvokerHelper
完整的错误日志:
FAILURE:构建失败并出现异常。
-
出了什么问题: 无法初始化类 org.codehaus.groovy.runtime.InvokerHelper
-
尝试: 运行 & ndash; stacktrace 选项来获取堆栈跟踪。运行 & ndash;信息或 & ndash;调试选项以获得更多日志输出。运行 & ndash;扫描以获得完整的见解。
-
通过https://help.gradle.org获得更多帮助
在 326 毫秒内构建失败 构建 Android 包失败! & N破折号;有关更多信息,请使用 & ndash; 运行此命令。详细。
-
03:49:进程“/home/manos/.programs/qt6/6.1.3/gcc_64/bin/androiddeployqt”退出,代码为 14。 构建/部署项目 new-mobile-app-ARM64-v8a 时出错(套件:Android Qt 6.1.3 Clang ARM64-v8a) 执行步骤“构建 Android APK”时
-
03:49:经过时间:00:02。
后来我注意到这个错误涉及到gradle。
我在 S.O 中搜索,发现其中一个建议是更改 distributionUrl 值到另一个大于 6.3 的版本。我的是 5.6.4。 我去https://gradle.org/releases/看到最新的是7.2 所以我尝试了: distributionUrl=HTTPS://services.gradle.org/distributions/gradle-7.2-bin.zip
我尝试再次构建,但出现此错误:
任务“:processDebugManifest”执行失败。
完整的错误日志:
FAILURE:构建失败并出现异常。 此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 8.0 不兼容。
您可以使用 ' & ndash; warning-mode all' 显示个别弃用警告并确定它们是否来自您自己的脚本或插件。
见https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings 9 个可操作的任务:9 个已执行
-
出了什么问题: 任务“:processDebugManifest”执行失败。 无法使字段私有 final java.lang.String java.io.File.path 可访问:模块 java.base 不会“打开 java.io”到未命名模块 @289b717
-
尝试: 运行 & ndash; stacktrace 选项来获取堆栈跟踪。运行 & ndash;信息或 & ndash;调试选项以获得更多日志输出。运行 & ndash;扫描以获得完整的见解。
-
通过https://help.gradle.org获得更多帮助
在 701 毫秒内构建失败 构建 Android 包失败! & N破折号;有关更多信息,请使用 & ndash; 运行此命令。详细。
-
14:59:进程“/home/manos/.programs/qt6/6.1.3/gcc_64/bin/androiddeployqt”退出,代码为 14。 构建/部署项目 new-mobile-app-ARM64-v8a 时出错(套件:Android Qt 6.1.3 Clang ARM64-v8a) 执行步骤“Build Android APK”时。
-
14:59:经过时间:00:02。
即使我搜索了,我也找不到任何简单的解决方案。
在创建新项目时,我尝试了几种不同的 qt 版本和工具包组合。 我总是遇到同样的错误。
至少整整 2 天,我一直在努力完成这项工作。
【问题讨论】:
标签: android gradle arm qt-creator