QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

目录

错误图片及编译输出文本:

解决方法:

探索经过:


 


错误图片及编译输出文本:

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

> Task :compileDebugAidl FAILED

aidl.exe E 11-09 17:59:35 7656 7052 io_delegate.cpp:50] Failed to GetFullPathName(D:\project\program\Qt\testforAndroid\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Release\android-build\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out\org\kde\necessitas\ministro\IMinistro.java)

 

 

FAILURE: Build failed with an exception.

 

* What went wrong:

Execution failed for task ':compileDebugAidl'.

> 1 exception was raised by workers:

java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: com.android.ide.common.process.ProcessException: Error while executing process E:\Android\android-sdk\build-tools\28.0.3\aidl.exe with arguments {-pE:\Android\android-sdk\platforms\android-28\framework.aidl -oD:\project\program\Qt\testforAndroid\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Release\android-build\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out -IE:\Qt\Qt5.14.2\5.14.2\android\src\android\java\src -ID:\project\program\Qt\testforAndroid\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Release\android-build\src -ID:\project\program\Qt\testforAndroid\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Release\android-build\src\debug\aidl -ID:\project\program\Qt\testforAndroid\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Release\android-build\aidl -dC:\Users\ADMINI~1\AppData\Local\Temp\aidl2678606004003770074.d E:\Qt\Qt5.14.2\5.14.2\android\src\android\java\src\org\kde\necessitas\ministro\IMinistro.aidl}

 

 

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

 

* Get more help at https://help.gradle.org

 

BUILD FAILED in 6s

1 actionable task: 1 executed

Building the android package failed!

-- For more information, run this command with --verbose.

17:59:36: 进程"E:\Qt\Qt5.14.2\5.14.2\android\bin\androiddeployqt.exe"退出,退出代码 14 。

Error while building/deploying project testforandroid (kit: Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 for Android))

When executing step "Build Android APK"




解决方法:

重要的是这一段,原因是因为路径  D:\project\program\Qt\testforAndroid\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Release\android-build\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out\org\kde\necessitas\ministro\IMinistro.java   包含的字符太多了,超过了限制,尝试把文件夹的名字改短一点,具体是要小于252个字节,也就是最多251个字节,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

 

其实最大限制是260,只不过这这个目录下需要生成两个文件,还有一个是:IMinistroCallback.java ,这个文件比 IMinistro.java多8个字节,所以上面这个就需要小于252个字节,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

 

如果上面的满足,下面不满足,就会出现另一个错误

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

> Task :compileDebugAidl FAILED

aidl.exe E 11-09 18:40:45 7612 920 io_delegate.cpp:50] Failed to GetFullPathName(D:\project\program\Qt\t123456\build-testforandroid-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_for_Android-Debug\android-build\build\generated\aidl_source_output_dir\debug\compileDebugAidl\out\org\kde\necessitas\ministro\IMinistroCallback.java)


以上就是解决方法,下面是我的苦逼探索经历。


探索经过:

刚遇到的时候还以为是软件出问题了

测试了以前编译成功的工程有都可以用,

环境变量,配置啥的都重新设置了一遍,都不行,

在极尽崩溃的情况下,选择了把最近安装的vs2017卸载,还是不行,

崩溃!

把qt卸载重装,还是一样!疯了!?

在网上没看到这方面的回答,百度知道上有一个这样的问题,没人知道为啥

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

于是翻译了一下这个问题表述,无法获取完整路径名,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

于是我尝试打开了这个目录,从这里复制一下,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

尝试打开,发现找不到,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

那我只好一层一层一层的剥开你的心,咳咳咳不好意思窜频了,我只好一层一层一层的打开文件夹,发现到这里之后,再往下的内容就没有了,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

于是我打开一个可以编译成功的工程下的文件夹,把之后的文件都复制一份放进去

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

然后依次打开目录,可以看到里面躺着的两个文件

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

再次编译,结果发现还是一样,关键的地方来了,我又准备查看一下刚才复制的文件还在不在,结果出现了一个错误,也就是刚才复制的文件已经被删除了,

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

于是我把两个路径放在一起对比了一下(上面的是编译出错的,下面的是编译成功的),发现就是一个长一个短,于是想就是不是因为名字太长了

QT编译生成Android时出错 > Task :compileDebugAidl FAILED aidl.exe

于是就开始测试了,结果真的是。在后面就去查了看是是不是文件夹名字长度是不是又限制,就发现以前是有限制的,260,于是就测试了以下,果然是260显示,不过现在的win10是没有这个限制了,所以,在win10下是可以使用,但是qt中还不行。

这应该算是一个bug,有空的时候可以给他们提一下。

 


秋风清

秋月明

落叶聚还散

寒鸦复栖惊

相逢相见知何日

此时此夜难为情

—————— 江湖夜雨飘零客 2020年11月9日19:36:16