Android gradle 打包错误A problem occ

作者: 哎呀啊噢 | 来源:发表于2018-09-29 18:00 被阅读87次

    因为项目为插件工程,每次编译需要使用“./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 gradle 打包错误A problem occ

        本文链接:https://www.haomeiwen.com/subject/desboftx.html