• error :Java.exe finished with non-zero exit value 1(或2)


    导入module后出现以下问题

    百度良久。。。

    说法一:项目包含了两个相同包名的不同 project 或者 jar

    (1)libs目录下存放有jar包,但是build.gradle中也写了导包语句。
    (2)新引入的Library项目中引用了主项目中已经引用的jar包,导致重复加载包。

    举例:

    1、当 A Module 中有 V4包,B Module 中也有 V4包,这时就会出现这样的错误

    2、com.android.dex.DexException: Multiple dex files define Lcom/sina/weibo/sdk/BuildConfig

    这是导入新浪微博库出现的错误,当出现标题错误时,如果是新浪微博捣的鬼的话,你只要在标题的错误日志之前几行就可以找到如上的错误日志,那是因为WeiboSDK里面含有一个library叫weibosdkcore.jar,这个weibosdkcore.jar的package name是com.sina.weibo.sdk. 而WeiboSDK这个project的package name也是com.sina.weibo.sdk造成的

    解决方法1:

    删除多余的 jar 

    如 V4包,只要将其中一个 module 中的 V4包干掉,然后引用另一个 有 V4包的Module 就哦了

    解决方法2:

    打开Gradle项目中的,对应项目的脚本文件 ,改成如下的就行了

    android {
        ...
        provided fileTree(include: ['*.jar'], dir: 'libs')
        ...
    }

    即将引用的库的条件改为provided,不要用compile.因为它们已经是库了,再编译就。。。

    解决方法3:

    (1)先检查Android 兼容包 support-v4 和 support-v7 包;
    (2)再检查一些常用的开源项目,比如:Gson、Butter Knife、EventBus、Nineoldandroids等。
    (3)建议:不要将jar包放到libs目录下,而要用Gradle构建,即在build.gradle中写导包语句。

    说法二:同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件。

    解决方法:(最终解决方案)

    打开 app/build.gradle 文件
    android {
        defaultConfig {
            // Enabling multidex support.
            // 1. 65535 limited
            // 2. run -- error :Java.exe finished with non-zero exit value 2
            multiDexEnabled true
      }
     
        dexOptions {
            javaMaxHeapSize "1g"  <- Java.exe finished with non-zero exit value 1 
                                     设置的值不要大于你机器可用的内存,
                                     如:Windwos10 4GB 此处设置为 1g
        }
    }
  • 相关阅读:
    【20220924】双减(上)
    【20220920】连岳摘抄
    【20220918】周日的忧伤
    【20220919】连岳摘抄
    【20220922】连岳摘抄
    【20220925】双减(下)
    【20220926】人精鬼灵
    Vue Promise (回调地狱)
    Vue ES6模块化语法学习
    Vue async、await 的使用注意事项
  • 原文地址:https://www.cnblogs.com/kangweifeng/p/5195230.html
Copyright © 2020-2023  润新知