Android Studio 1.0在dexDebug或dexRelease上构建失败

莱昂·卢卡迪(Leon Lucardie)

我最近从Android Studio 0.9.2升级到1.0(包括Gradle插件的1.0.0版本),而在构建项目时遇到了问题。

每当我构建时,在dexDebug或dexRelease步骤中都会收到以下异常:

UNEXPECTED TOP-LEVEL ERROR:
    java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.HashMap.createEntry(HashMap.java:897)
        at java.util.HashMap.addEntry(HashMap.java:884)
        at java.util.HashMap.put(HashMap.java:505)
        at com.android.dx.rop.type.Type.putIntern(Type.java:857)
        at com.android.dx.rop.type.Type.intern(Type.java:365)
        at com.android.dx.rop.type.Type.internClassName(Type.java:415)
        at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:289)
        at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:299)
        at com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:150)
        at com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)
        at com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115)
        at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:482)
        at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
        at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
        at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
        at com.android.dx.command.dexer.Main.processClass(Main.java:704)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
        at com.android.dx.command.dexer.Main.access$300(Main.java:82)
        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:332)
        at com.android.dx.command.dexer.Main.run(Main.java:243)
        at com.android.dx.command.dexer.Main.main(Main.java:214)
        at com.android.dx.command.Main.main(Main.java:106)

我试图将Android Studio的堆大小-Xmx4096m增加到无济于事。在带有gradle插件版本0.14的Android Studio 0.9.2中可以正常工作。

这是我的项目的build.gradle文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

这是我模块的build.gradle文件:

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:appcompat-v7:21.+'
    compile 'com.android.support:cardview-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
    compile 'com.android.support:multidex:1.+'
    compile 'com.google.android.gms:play-services:6.5.+'
    compile 'org.jsoup:jsoup:1.8.+'
    compile 'commons-io:commons-io:2.4'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'com.rometools:rome:1.5.0'
    compile 'com.google.apis:google-api-services-blogger:v3-rev44-1.19.0'
    compile 'com.google.http-client:google-http-client-gson:1.19.0'
    compile 'org.apache.commons:commons-collections4:4.0'
    compile 'com.parse.bolts:bolts-android:1.1.2'
    compile files('libs/android-query.0.26.8.jar')
    compile files('libs/Parse-1.7.1.jar')
}

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"
    defaultConfig {
        // Enabling multidex support.
        multiDexEnabled true
        minSdkVersion 10
        targetSdkVersion 21
        versionCode 1040009
        versionName "1.4"

    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-dcrapp.txt'
            shrinkResources true
        }

        debug {
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-dcrapp.txt'
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }


        //Bugfix for Gradle build bug
        packagingOptions {
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

task copyMappingFiles(type: Copy)

copyMappingFiles {
    from 'build\\outputs\\mapping\\release'
    into 'mappings\\'+android.defaultConfig.versionCode
    include('mapping.txt')
}

assembleRelease.finalizedBy copyProguardFiles

可能是此问题的原因,如何解决?

安卓

看起来Android Studio内存不足,请尝试在AndroidStudio.app/Contents/bin/studio.vmoptions中增加内存大小

-Xms256m
-Xmx1024m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=96m
-XX:+UseCompressedOops

根据Android Studio答案中的建议-如何增加分配的堆大小

另外,您可能要添加

dexOptions {
    javaMaxHeapSize "4g"
}

按照Android Studio Google JAR文件添加到模块build.gradle导致GC开销限制超出错误

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Android Studio:Gradle-构建失败-任务':dexDebug'的执行失败

来自分类Dev

Android Studio构建失败-任务':app:dexDebug'的执行失败

来自分类Dev

在Android Studio上构建失败

来自分类Dev

在Android Studio上执行任务':app:dexDebug'执行失败

来自分类Dev

Android Studio构建失败,出现异常任务':app:dexDebug'的执行失败

来自分类Dev

Android Studio构建失败

来自分类Dev

Android Studio构建失败

来自分类Dev

Android Studio中的构建失败

来自分类Dev

Android Studio:错误:任务':app:dexDebug'的执行失败

来自分类Dev

错误:-在Android Studio中执行任务':app:dexDebug'失败

来自分类Dev

Android Studio 执行任务':app"dexDebug 失败

来自分类Dev

Android Studio 1.5.1中的Gradle构建失败

来自分类Dev

Android Studio中的Gradle构建失败

来自分类Dev

在Android Studio中Gradle构建失败

来自分类Dev

由于依赖关系,Android Studio 构建失败

来自分类Dev

Gradlew 构建失败,Android Studio 成功

来自分类Dev

Android Studio认为我正在为API Level 1而不是Android L进行构建

来自分类Dev

Android Studio构建数量

来自分类Dev

Android Studio构建错误

来自分类Dev

android studio gradle 构建

来自分类Dev

更改在Android Studio上构建的目标

来自分类Dev

更改在Android Studio上构建的目标

来自分类Dev

Android Studio 1.0 RC 1 Gradle构建问题-无法使用Gradle安装运行构建操作

来自分类Dev

Android Studio 1.0 RC 1 Gradle构建问题-无法使用Gradle安装运行构建操作

来自分类Dev

Android Studio:构建命令失败 gradle 同步失败

来自分类Dev

Android Studio上的NoClassDefFoundError

来自分类Dev

Mac上的Android Studio

来自分类Dev

Android Studio上的GitHub

来自分类Dev

Android Studio上的Qt

Related 相关文章

热门标签

归档