Qt5.14.2 For Android 首次編譯失敗的解決方法(個(gè)人總結(jié)版)

剛才發(fā)現(xiàn)了一個(gè)問(wèn)題,

我的基礎(chǔ)設(shè)置是

項(xiàng)目配置中我把a(bǔ)ndroid-24 改為 Android Studio中的android21就不好用了,24可以正常編譯


這里設(shè)置的是android5.0,

7.0也是可以正常使用的。


這個(gè)問(wèn)題困擾我了3天 ,今天終于是可以正常編譯,但是貌似debug還是有問(wèn)題。不過(guò)已經(jīng)可以正常打包了。也可以通過(guò)qDebug()打印信息,打不出來(lái)請(qǐng)檢查真機(jī)設(shè)置。

下面說(shuō)一下方法。首先我是跟著B(niǎo)站上的“嵌入式軟件”老哥一步一步安裝的。也是使用他的SDK包,但是估計(jì)是時(shí)間問(wèn)題他使用的NDK是R21 我用的是R21b最新版。官網(wǎng)下載的連接如下:https://developer.android.google.cn/ndk/downloads/?

老哥的B站連接:https://www.bilibili.com/video/BV1tK41157F6?from=search&seid=14898253952853283280

在這嘮叨一下,老哥描述中的網(wǎng)盤(pán)已經(jīng)失效,看評(píng)論區(qū)的鏈接。

到這里基礎(chǔ)信息已經(jīng)OK ,下面說(shuō)一下如何解決Qt5.14.2首次運(yùn)行Android報(bào)錯(cuò)的解決方法:

1.第一個(gè)條件要先開(kāi)啟Qt中Android的配置


按照步驟點(diǎn)擊,會(huì)彈出下面的對(duì)話框,直接點(diǎn)擊完成;


這時(shí)候在工程中就多出了android的配置信息了如下圖


開(kāi)始正題:

報(bào)錯(cuò)信息如下:

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: 進(jìn)程"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"

需要修改下面的文件


這里要說(shuō)明一下;


出現(xiàn)這個(gè)倒霉代碼的原因是gradle版本不對(duì)造成的問(wèn)題。說(shuō)實(shí)話個(gè)人也是瞎撞才找到這個(gè)問(wèn)題的解決方法。貌似是QT版本、sdk、ndk連鎖造成的原因。開(kāi)源最大的坑呀,找這個(gè)問(wèn)題用了3天要命了。

我這個(gè)文件中的原始內(nèi)容是

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中的內(nèi)容

#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。說(shuō)明上面的方法是可以使用的

不過(guò)話說(shuō)回來(lái)。在我寫(xiě)這個(gè)解決方法的時(shí)候是用的QT5.14.2版本?后續(xù)版本估計(jì)也差不多,不過(guò)沒(méi)有驗(yàn)證。算是后來(lái)人一個(gè)思路吧。

到這里,一個(gè)報(bào)錯(cuò)信息已經(jīng)排除掉了,

不過(guò)還有后續(xù)的報(bào)錯(cuò),往下看,

這個(gè)地方其實(shí)有兩個(gè)問(wèn)題

分別給出錯(cuò)誤碼和解決方法省的迷糊

錯(cuò)誤碼:

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'??//這個(gè)是以前的,

classpath "com.android.tools.build:gradle:4.0.1"?? ?? ? //這個(gè)是更改后的,千萬(wàn)別問(wèn)我為什么?我不知道通過(guò)看Android Studio找到的,后續(xù)版本升級(jí)估計(jì)也要參考這個(gè)方法吧

????}

}

錯(cuò)誤碼:

* What went wrong:

Execution failed for task ':lintVitalRelease'.

> Lint infrastructure error

Caused by: java.lang.reflect.InvocationTargetException

解決方法:

在build.gradle?對(duì)后面加上下面這句話

android {

lintOptions {

????????checkReleaseBuilds false

????????abortOnError false

????}

}

到此我的電腦是可以正常編輯生成文件了

這些錯(cuò)誤碼之外的就要小伙伴們自己找問(wèn)題了


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容