因?yàn)轫?xiàng)目為插件工程,每次編譯需要使用“./gradlew pushPlugin”自動(dòng)push到殼工程涉波,但是...我的不行,就不行...
錯(cuò)誤如下:
* What went wrong:
A problem occurred configuring project ':app'.
> Could not generate a proxy class for class com.android.build.gradle.tasks.Buil dArtifactReportTask.
image.png
一臉懵逼,完全看不懂....
按照提示嘗試找找錯(cuò)誤原因芒填,然后一頓操作,猛如虎:
./gradlew --stacktrace
./gradlew --info
./gradlew --scan
...
“./gradlew --stacktrace”,發(fā)現(xiàn)了詳細(xì)點(diǎn)的異常信息,如下:
image.png
看著就暈空繁,哈哈殿衰,這個(gè)只是煙霧彈,主要說(shuō)的是task.leftshift方法已經(jīng)被棄用了盛泡,并計(jì)劃在Gradle 5.0中刪除闷祥,讓用task.dolast代替,但這并不影響我構(gòu)建版本啊?繼續(xù)往下看
image.png
這個(gè)錯(cuò)誤感覺(jué)有點(diǎn)意思饭于,可能是病灶的根源蜀踏,仔細(xì)一看维蒙,確實(shí),經(jīng)過(guò)幾分鐘仔細(xì)研究果覆,終于知道了:
因?yàn)楸镜匕惭bjdk的時(shí)候順手配置了jre颅痊,android studio是內(nèi)置jre的,所以用ide編譯的時(shí)候局待,沒(méi)有任何問(wèn)題斑响,但是使用gradlew命令,往殼工程push的時(shí)候就出錯(cuò)了钳榨,原因就是倆個(gè)jre環(huán)境沖突了舰罚,這個(gè)鍋暫時(shí)讓as3.1.3來(lái)背吧,知道了根源薛耻,解決簡(jiǎn)單了营罢;
解決方案:
1、我首先去把a(bǔ)s的jre配置地方改成系統(tǒng)的饼齿,發(fā)現(xiàn)饲漾,改不了,放棄...
image.png
2.as不讓改缕溉,還不能改自己的么考传,改本地的環(huán)境變量,把java_home的jre換成as的jre地址证鸥,
結(jié)果僚楞,編譯的特別絲滑...
image.png
問(wèn)題解決了,但是總覺(jué)得怪怪了枉层,因?yàn)楸镜豭re環(huán)境被改了泉褐,不舒服,哈哈鸟蜡,原因很簡(jiǎn)單啊兴枯,本地jdk以后升級(jí)就不行了,第二種方法只是暫時(shí)解決了矩欠,并不完美,所以還得再想想...
終極解決:
編寫(xiě)了一個(gè)腳本文件财剖,主要作用有倆個(gè),第一是臨時(shí)替換本地jre的地址癌淮,指向到as的躺坟。第二是直接編譯,然后push;
腳本如下:
export JAVA_HOME=E:/Android_Studio/android-studio-ide-171.4443003-windows/android-
studio/jre
echo "start gradle....."
./gradlew pushPlugin
echo "gradle end!!!"
ps:把地址換成自己as的jre地址就可以乳蓄,注意分隔符的方向
運(yùn)行編譯咪橙,完美編譯,絲滑...