首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成失败,错误以非零退出值3完成

生成失败,错误以非零退出值3完成
EN

Stack Overflow用户
提问于 2015-08-11 04:25:47
回答 1查看 3.1K关注 0票数 2

这个错误我已经经历了好几天了。在发布这个问题之前,我已经搜索并尝试过其他解决方案。

这是我的build.gradle文件

代码语言:javascript
复制
apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.apps.myApps"
        minSdkVersion 14
        targetSdkVersion 22
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            multiDexEnabled true
        }
    }

    dexOptions {
            preDexLibraries = false
        }
    }

    afterEvaluate {
        tasks.matching {
            it.name.startsWith('dex')
        }.each { dx ->
        if (dx.additionalParameters == null) {
            dx.additionalParameters = []
        }
        dx.additionalParameters += '--multi-dex'
    }
}
dependencies {
    provided fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:multidex:1.0.0'
    compile "com.android.support:support-v4:18.0.+"
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.squareup:otto:1.3.8'
    compile 'org.bouncycastle:bcprov-jdk15on:1.49'
    compile 'net.simonvt.menudrawer:menudrawer:3.0.+@aar'

    compile files('libs/acssmc-1.1.1.jar')
    compile files('libs/activation.jar')
    compile files('libs/additionnal.jar')
    compile files('libs/android-async-http-1.4.6.jar')
    compile files('libs/android-query-full.0.26.7.jar')
    compile files('libs/androidmarketapi-0.6.jar')
    compile files('libs/emvswipeapi-android-2.3.0.jar')
    compile files('libs/mail.jar')
    compile files('libs/newrelic.android.jar')
    compile files('libs/nineoldandroids-2.4.0.jar')
    compile files('libs/ormlite-android-4.47.jar')
    compile files('libs/ormlite-core-4.47.jar')
}

我已经确定

代码语言:javascript
复制
compile 'org.bouncycastle:bcprov-jdk15on:1.49'

正在导致非零退出值3。在我注释它之后,错误就消失了。但是这个jdk很重要,我不能评论它。

还有别的解决办法吗?

** 编辑 **添加了错误消息,希望有助于解决问题。

代码语言:javascript
复制
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.android.dx.ssa.SetFactory.makeLivenessSet(SetFactory.java:91)
at com.android.dx.ssa.SsaBasicBlock.addLiveOut(SsaBasicBlock.java:792)
at com.android.dx.ssa.back.LivenessAnalyzer.liveOutAtBlock(LivenessAnalyzer.java:199)
at com.android.dx.ssa.back.LivenessAnalyzer.handleTailRecursion(LivenessAnalyzer.java:141)
at com.android.dx.ssa.back.LivenessAnalyzer.run(LivenessAnalyzer.java:188)
at com.android.dx.ssa.back.LivenessAnalyzer.constructInterferenceGraph(LivenessAnalyzer.java:93)
at com.android.dx.ssa.back.SsaToRop.<init>(SsaToRop.java:82)
at com.android.dx.ssa.back.SsaToRop.convertToRopMethod(SsaToRop.java:69)
at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:101)
at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:72)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:297)
at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:137)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:93)
at com.android.dx.command.dexer.Main.processClass(Main.java:729)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:505)
at com.android.dx.command.dexer.Main.runMultiDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:244)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 3
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-11 06:42:44

尝试像下面这样更新您的gradle文件(添加packagingOptions):

代码语言:javascript
复制
android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        ...
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
}

我使用了您的整个build.gradle文件,没有任何错误。我的环境:

  • Android Studio 1.3.1
  • 在build.gradle内部(在项目文件夹中):依赖关系{ classpath 'com.android.tools.build:gradle:1.3.0‘

-MainActivity.java:

代码语言:javascript
复制
package com.example.testgradle;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

使用"OutOfMemoryError: GC开销超出限制“进行更新,尝试

代码语言:javascript
复制
dexOptions{        
    incremental true 
    javaMaxHeapSize "4g" 
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31933205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档