美文网首页
gradle编译异常记录:finished with non-z

gradle编译异常记录:finished with non-z

作者: 西瓜皮TWO | 来源:发表于2019-01-03 10:50 被阅读0次

    3个错误non-zero exit value 1; non-zero exit value 2; non-zero exit value 3

    被编译的代码或资源有问题:(non-zero exit value 1)

    出现这种编译异常表现是 exit value 1,一般会给出错误提示,所以很容易排查。这种错误很常见,错误提示有时候是在日志中明显的给出来了,如下示例所示

        :app:processDebugManifest
        :app:processDebugResources
        \app\src\main\res\layout\activity_welcome.xml
        Error:(42, 26) No resource found that matches the given name (at 'src' with value '@drawable/welcome_03').
        Error:Execution failed for task ':app:processDebugResources'.
        com.android.ide
        .common.process.ProcessException: org.gradle.process.internal.ExecException: 
        Process 'command 'D:\android-sdk-windows\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1
    
    

    上面错误提示找不到welcome_03这个drawable资源。有时候没有明显的提示,如下面这种错误:

        :app:transformClassesWithMultidexlistForDebug UP-TO-DATE
        :app:transformClassesWithDexForDebug FAILED
        Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
        > com.android.build.api.transform.TransformException: 
        com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: 
        com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: 
        Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1
    

    上面这种错误没有给出很显示的提示,但是可以知道是在执行Error:Execution failed for task ':app:transformClassesWithDexForDebug'这一步出错了,至少缩小了错误的排查范围,这个时候就需要经验来判断了,自己之前改过什么,自己回想一下。有时候往上面看错误日志,也会发现有很明显的错误提示。

    jar包冲突:(non-zero exit value 2 )

    主要表现为编译后出现finished with non-zero exit value 2错误,原因是jar包冲突,导致的原因可能是在dependencies中使用compile files()导入一次jar包,然后有其它jar的引入方式使用compile’com.xxx’方式,正好又引用了这个jar包,所以导致了重复引用jar包的冲突。最常见的是support-v4包的重复引用。具体报错如下所示:


    image.png
     com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command ''D:\Develop\Java\jdk1.8.0_172\bin\java.exe''
     finished with non-zero exit value 2 
    

    这个错误在app的build.gradle里面添加下面这句就好了。

    android {
        defaultConfig {
            ...
            multiDexEnabled  true 
        }
    }
    
    编译的代码过多导致内存不足:( non-zero exit value 3 )
    com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException:
     org.gradle.process.internal.ExecException: Process 'command 'D:\Develop\Java\jdk1.8.0_172\bin\java.exe'' 
    finished with non-zero exit value 3 
    

    这个错误就在app.bulid里面加上这句,再rebuild ,之后再运行就行了。4g可以看电脑配置修改(2g,3g,6g,8g)。

    dexOptions {
        javaMaxHeapSize  "4g" 
    }
    

    如图:

    image

    似乎看到了问题的所在,我的是说的第一个错误,看起来是依赖包重复了 ,好吧,那就找重复的包吧,重新修改了之后,再次运行,还是出现了这个错误,我确定已经没有重复的包了,啊啊,这个似乎不能解决我的问题啊,然后我又去百度了,也有好多说的的,也有的说因为jdk为1.8造成的,可我的不是1.8,是1.7的,也有人说造成这个问题出现的原因有很多种,看到这里有木有一种想哭的冲动,我是有了,然后问了一个大神,大神告诉我可以在android studio新建一个module,然后替换对应目录,然后我能怎么办?只能先按照这样的方法试试了,也是一种解决方案啊。来开始动手。

    我在自己的studio随便创建了一个项目,先运行试试,完蛋了,还是出现这个问题啊,这回就真的不理解了,我什么都没做也出现这个问题?后来我以为是我的电脑安装了2个studio,会不会冲突了,然后就把这个问题放在群里去问了,以下是我提问的

    请问电脑如果安装了两个studio会导致冲突吗随便创建一个demo,提示这个错误 :

    image

    然后有人开始回答了:

    两个不同版本才行

    这个错是内存太小了

    也可能是buildTools版本的问题

    内存加大就行了

    jar包冲突,或方法数超了

    你的buildTools版本是多少的,前些的我用的24的就报的这个错误,调成23的就好了

    看到最后这个回答,我的眼睛亮了,会不会是这个问题呢,我去查看了我studio当前的buildTools版本

    image

    果然是24,于是我改成了23,重新运行,哇哇哇,真的可以啦,感动的都要哭了啊,然后我问为什么这样就可以解决呢?

    有人回答:

    其实我也不清楚为啥

    我把buildTools更新到最新版就出现这个问题了,应该是某些兼容性的问题吧

    compileSdkVersion用24,buildtools用24

    image

    我原来compileSdkVersion用23,buildtools用24,运行出了这个问题,现在改成23的就没事了,

    果然还得一致,看别人的博客说这样是没事的。。。

    然后有人说:

    builtools24和以前版本不同了,有appt和appt2,以前是只有appt的

    尽量保证版本一致

    SdkVersion 是24 buildToolsVersion 可以用24.0.1

    学到了有木有,果然造成问题的原因有很多种的,并不是每一种都适合自己啊,还得自己去找原因啊!!!

    转载文章地址:https://blog.csdn.net/lxk_1993/article/details/50511172

    相关文章

      网友评论

          本文标题:gradle编译异常记录:finished with non-z

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