Android gradle 打包错误A problem occurred configuring project ':app'.

因为项目为插件工程,每次编译需要使用“./gradlew pushPlugin”自动push到壳工程,但是...我的不行,就不行...
错误如下:

* 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

一脸懵逼,完全看不懂....
按照提示尝试找找错误原因,然后一顿操作,猛如虎:
./gradlew --stacktrace
./gradlew --info
./gradlew --scan
...

“./gradlew --stacktrace”,发现了详细点的异常信息,如下:

image.png
看着就晕,哈哈,这个只是烟雾弹,主要说的是task.leftshift方法已经被弃用了,并计划在Gradle 5.0中删除,让用task.dolast代替,但这并不影响我构建版本啊?继续往下看
image.png

这个错误感觉有点意思,可能是病灶的根源,仔细一看,确实,经过几分钟仔细研究,终于知道了:

因为本地安装jdk的时候顺手配置了jre,android studio是内置jre的,所以用ide编译的时候,没有任何问题,但是使用gradlew命令,往壳工程push的时候就出错了,原因就是俩个jre环境冲突了,这个锅暂时让as3.1.3来背吧,知道了根源,解决简单了;

解决方案:
1、我首先去把as的jre配置地方改成系统的,发现,改不了,放弃...

image.png

2.as不让改,还不能改自己的么,改本地的环境变量,把java_home的jre换成as的jre地址,
结果,编译的特别丝滑...

image.png

问题解决了,但是总觉得怪怪了,因为本地jre环境被改了,不舒服,哈哈,原因很简单啊,本地jdk以后升级就不行了,第二种方法只是暂时解决了,并不完美,所以还得再想想...
终极解决:
编写了一个脚本文件,主要作用有俩个,第一是临时替换本地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地址就可以,注意分隔符的方向
运行编译,完美编译,丝滑...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,029评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,859评论 2 59
  • 2018.06.17: 早上8点15吃早餐,早餐在6楼,有一个露天平台,如果不是下雨,在露天平台吃早上是别具情调的...
    言心之语阅读 881评论 0 0
  • 楚王好细腰,这个典故人人皆知。楚灵王在章华台建起离宫,供自己享乐,他有个独特的嗜好就是喜欢细腰,并处罚腰粗之人。搞...
    让徐霞客自叹不如阅读 134评论 0 0