生成APK时,QtCreator中发生ProcessException

时间:2019-04-03 09:20:55

标签: android c++ qt qt5 qt-creator

我有一个现有的QtCreator项目,我想在Android上运行。当我编译并运行Windows套件时,一切正常。但是在为Android编译应用程序时,我总是在最后一步“ Build Android APK”中出现此错误。

规格:

  • 开发主机:win10 x64
  • andorid comile平台:23、26、27、28
  • andorid ndk版本:r19c,r18b
  • java版本:1.8.0_201

错误消息:

:compileDebugAidl FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugAidl'.
> java.io.IOException: com.android.ide.common.process.ProcessException: Error while executing process C:\dev\android\sdk-tools-windows-4333796\build-tools\29.0.0-rc1\aidl.exe with arguments {-pC:\dev\android\sdk-tools-windows-4333796\platforms\android-28\framework.aidl -oC:\workspace\projects\build-Proj-Android_for_armeabi_v7a_Clang_Qt_5_12_0_for_Android_ARMv72_765240-Debug\android-build\build\generated\source\aidl\debug -IC:\dev\Qt\5.12.0\android_armv7\src\android\java\src -IC:\workspace\projects\build-Proj-Android_for_armeabi_v7a_Clang_Qt_5_12_0_for_Android_ARMv72_765240-Debug\android-build\src -IC:\workspace\projects\build-Proj-Android_for_armeabi_v7a_Clang_Qt_5_12_0_for_Android_ARMv72_765240-Debug\android-build\aidl -IC:\workspace\projects\build-Proj-Android_for_armeabi_v7a_Clang_Qt_5_12_0_for_Android_ARMv72_765240-Debug\android-build\src\debug\aidl -dC:\Users\user1\AppData\Local\Temp\aidl8241234200511438554.d C:\dev\Qt\5.12.0\android_armv7\src\android\java\src\org\kde\necessitas\ministro\IMinistro.aidl}

由于我可以使用QtCreator中新创建的项目重现此问题,因此我的设置一定存在问题。

非常感谢您提供解决此问题的所有提示...

2 个答案:

答案 0 :(得分:1)

这是Android SDK平台工具29.0.0的错误。 解决方案是将构建强制降级以使用28.0.3版。

在构建目录中找到文件,我的是:C:\dev_qt\experiments\build-test_qt_5_13_0_ARMv7-Release\android-build\gradle.properties 并改变 来自:androidBuildToolsVersion=29.0.0 到:androidBuildToolsVersion=28.0.3

确保拥有Android SDK平台工具28.0.3 检入Android studio-> Tools-> SDK Manager-> SDK Tools-> Flag'Show package details'

答案 1 :(得分:0)

我尝试了Albertino80的修复程序,但没有成功,然后我只是将工具箱的build目录放置在C:\User\MyUser\build之类的很小的目录中。我读过某个地方,在构建文件夹中确实有个大名字会出现此错误。不知道是否仍然需要Albertino80的修复程序,但是我猜没有,因为它是使用SDK的30版本构建的。