zoukankan      html  css  js  c++  java
  • android

    在使用jenkins,使用gradle编译的时候总会出现一些问题,下面是几个常见问题的解决方法。

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

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

        :app:processDebugManifest
        :app:processDebugResources
        appsrcmain
    eslayoutactivity_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-windowsuild-tools22.0.1aapt.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 FilesJavajdk1.7.0_79injava.exe'' finished with non-zero exit value 1

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

    • jar包冲突(finished with 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包的重复引用。具体报错如下所示:

      Error:Execution failed for task ':task:transformClassesWithDexForDebug'.
      com.android.build.api.transform.TransformException: 
      com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:
      Process 'command 'C:Javajdk1.7.0_79injava.exe'' finished with non-zero exit value 2
    • 编译的代码过多导致内存不足(finished with non-zero exit value 3)

      Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
      Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
      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:Javajdk1.7.0_79injava.exe'' finished with non-zero exit value 3

    解决方案是在gradle文件中的android代码块内增加如下内容即可解决:

    android {
    
        // ...
    
        dexOptions {
        javaMaxHeapSize "4g"
        }
    }

    或者修改android studio的安装目录下的bin目录中的studio.vmoptions文件中的Xms和Xmx两项,将其值改大,如下所示:

    -Xms256m
    -Xmx1280m
  • 相关阅读:
    hdu5728 PowMod
    CF1156E Special Segments of Permutation
    CF1182E Product Oriented Recurrence
    CF1082E Increasing Frequency
    CF623B Array GCD
    CF1168B Good Triple
    CF1175E Minimal Segment Cover
    php 正则
    windows 下安装composer
    windows apache "The requested operation has failed" 启动失败
  • 原文地址:https://www.cnblogs.com/YatHo/p/6807183.html
Copyright © 2011-2022 走看看