刚才发现了一个问题,
我的基础设置是
项目配置中我把android-24 改为 Android Studio中的android21就不好用了,24可以正常编译
这里设置的是android5.0,
7.0也是可以正常使用的。
这个问题困扰我了3天 ,今天终于是可以正常编译,但是貌似debug还是有问题。不过已经可以正常打包了。也可以通过qDebug()打印信息,打不出来请检查真机设置。
下面说一下方法。首先我是跟着B站上的“嵌入式软件”老哥一步一步安装的。也是使用他的SDK包,但是估计是时间问题他使用的NDK是R21 我用的是R21b最新版。官网下载的连接如下:https://developer.android.google.cn/ndk/downloads/
老哥的B站连接:https://www.bilibili.com/video/BV1tK41157F6?from=search&seid=14898253952853283280
在这唠叨一下,老哥描述中的网盘已经失效,看评论区的链接。
到这里基础信息已经OK ,下面说一下如何解决Qt5.14.2首次运行Android报错的解决方法:
1.第一个条件要先开启Qt中Android的配置
按照步骤点击,会弹出下面的对话框,直接点击完成;
这时候在工程中就多出了android的配置信息了如下图
开始正题:
报错信息如下:
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\Mr.L\Desktop\Qt5_readXml\androidTest\build-androidTest-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_android-Debug\android-build\build.gradle' line: 18
* What went wrong:
A problem occurred evaluating root project 'android-build'.
> Failed to apply plugin [id 'com.android.internal.version-check']
> Minimum supported Gradle version is 6.1.1. Current version is 5.5.1. If using the gradle wrapper, try editing the distributionUrl in C:\Users\Mr.L\Desktop\Qt5_readXml\androidTest\build-androidTest-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_android-Debug\android-build\gradle\wrapper\gradle-wrapper.properties to gradle-6.1.1-all.zip
* 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 24s
Building the android package failed!
-- For more information, run this command with --verbose.
15:34:08: 进程"D:\Qt\Qt5.14.2\5.14.2\android\bin\androiddeployqt.exe"退出,退出代码 14 。
Error while building/deploying project androidTest (kit: Android for armeabi-v7a,arm64-v8a,x86,x86_64 (Clang Qt 5.14.2 (android)))
When executing step "Build Android APK"
需要修改下面的文件
这里要说明一下;
出现这个倒霉代码的原因是gradle版本不对造成的问题。说实话个人也是瞎撞才找到这个问题的解决方法。貌似是QT版本、sdk、ndk连锁造成的原因。开源最大的坑呀,找这个问题用了3天要命了。
我这个文件中的原始内容是
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
下面的是我参照Android Studio中的内容
#Mon Aug 10 08:49:34 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
这里我安装了Android Studio 并保证在其中可以生成helloword。说明上面的方法是可以使用的
不过话说回来。在我写这个解决方法的时候是用的QT5.14.2版本 后续版本估计也差不多,不过没有验证。算是后来人一个思路吧。
到这里,一个报错信息已经排除掉了,
不过还有后续的报错,往下看,
这个地方其实有两个问题
分别给出错误码和解决方法省的迷糊
错误码:
aidl.exe E 08-10 16:03:31 8220 15596 io_delegate.cpp:50] Failed to GetFullPathName(C:\Users\Mr.L\Desktop\Qt5_readXml\androidTest\build-androidTest-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_2_android-Debug\android-build\build\generated\aidl_source_output_dir\release\compileReleaseAidl\out\org\kde\necessitas\ministro\IMinistro.java)
解决方法如下在build.gradle文件中更改
buildscript {
repositories {
google()
jcenter()
}
dependencies {
//classpath 'com.android.tools.build:gradle:3.5.0' //这个是以前的,
classpath "com.android.tools.build:gradle:4.0.1" //这个是更改后的,千万别问我为什么 我不知道通过看Android Studio找到的,后续版本升级估计也要参考这个方法吧
}
}
错误码:
* What went wrong:
Execution failed for task ':lintVitalRelease'.
> Lint infrastructure error
Caused by: java.lang.reflect.InvocationTargetException
解决方法:
在build.gradle 对后面加上下面这句话
android {
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
到此我的电脑是可以正常编辑生成文件了
这些错误码之外的就要小伙伴们自己找问题了