【问题标题】:ProcessException when buildToolsVersion is changed from 22.0.1 to 23.0.1当 buildToolsVersion 从 22.0.1 更改为 23.0.1 时出现 ProcessException
【发布时间】:2015-09-28 13:52:31
【问题描述】:

看到 ProcessException,这似乎是一个老问题,但在我的情况下,这个异常的原因是不同的。我正在尝试将 compileSDKVersion 从 22 移动到 23。我还将 buildToolsVersion 从 22.0.1 更改为 23.0.1。 当我仅更改 compileSDKVersion 时,gradle 同步和构建成功。但是将构建版本更改为 23.0.1 后,gradle sync 成功但编译失败并出现 ProcessException。

以下是异常详情:

processing com/google/android/gms/tagmanager/zzad.class...

Unknown source file : UNEXPECTED TOP-LEVEL ERROR:
Unknown source file : java.lang.OutOfMemoryError: GC overhead limit exceeded
Unknown source file :   at com.android.dx.rop.cst.CstString.utf8BytesToString(CstString.java:158)
Unknown source file :   at com.android.dx.rop.cst.CstString.<init>(CstString.java:200)
Unknown source file :   at com.android.dx.cf.cst.ConstantPoolParser.parseUtf8(ConstantPoolParser.java:371)
Unknown source file :   at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:262)
Unknown source file :   at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:288)
Unknown source file :   at com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:150)
Unknown source file :   at com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)
Unknown source file :   at com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115)
Unknown source file :   at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:482)
Unknown source file :   at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
Unknown source file :   at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
Unknown source file :   at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
Unknown source file :   at com.android.dx.command.dexer.Main.parseClass(Main.java:764)
Unknown source file :   at com.android.dx.command.dexer.Main.access$1500(Main.java:85)
Unknown source file :   at com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1684)
Unknown source file :   at com.android.dx.command.dexer.Main.processClass(Main.java:749)
Unknown source file :   at com.android.dx.command.dexer.Main.processFileBytes(Main.java:718)
Unknown source file :   at com.android.dx.command.dexer.Main.access$1200(Main.java:85)
Unknown source file :   at com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1645)
Unknown source file :   at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
Unknown source file :   at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
Unknown source file :   at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
Unknown source file :   at com.android.dx.command.dexer.Main.processOne(Main.java:672)
Unknown source file :   at com.android.dx.command.dexer.Main.processAllFiles(Main.java:569)
Unknown source file :   at com.android.dx.command.dexer.Main.runMultiDex(Main.java:366)
Unknown source file :   at com.android.dx.command.dexer.Main.run(Main.java:275)
Unknown source file :   at com.android.dx.command.dexer.Main.main(Main.java:245)
Unknown source file :   at com.android.dx.command.Main.main(Main.java:106)

:app:dexDebug FAILED
:app:dexDebug (Thread[main,5,main]) completed. Took 1 mins 14.503 secs.

FAILURE: Build failed with an exception.

* What went wrong:
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_75.jdk/Contents/Home/bin/java'' finished with non-zero exit value 3

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 1 mins 24.421 secs
Stopped 0 compiler daemon(s).

我将堆空间增加到 2048m。
尝试了我所知道的所有方法,例如 build clean、gradle clean、重建项目、重新加载项目、重新启动工作室等。
其他 stackoverflow 答案说这可能是由于同一个库被多次编译,所以我在 gradle 中将 multiDexEnabled = true 添加到我的 defaultConfig 中。这没有帮助。

下面是我的毕业作品:

    apply plugin: 'com.android.application'  
android {
    lintOptions {
        abortOnError false
    }

    compileSdkVersion 23
    buildToolsVersion '23.0.1'

    defaultConfig {
    applicationId "com.pfoinc.shield"
    minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
    targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
    versionCode Integer.parseInt(project.VERSION_CODE)
    versionName project.VERSION_NAME
    multiDexEnabled = true
}

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':MrVector')
    compile project(':MorphingNumber')
    compile 'com.android.support:recyclerview-v7:22.1.0'
    compile 'com.android.support:support-v4:22.1.0'
    compile 'com.android.support:cardview-v7:22.1.0'
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.facebook.android:facebook-android-sdk:3.23.1'
    compile 'com.github.ksoichiro:androidcolorfulicons:0.1.1'
    compile 'fr.baloomba:viewpagerindicator:2.4.2'
    compile 'com.pkmmte.view:circularimageview:1.1'
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'com.sothree.slidinguppanel:library:3.0.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.getbase:floatingactionbutton:1.9.0'
    compile 'com.android.support:design:23.0.1'
    compile 'net.hockeyapp.android:HockeySDK:3.5.0'
    compile 'jp.wasabeef:recyclerview-animators:1.2.0@aar'
    compile 'com.google.guava:guava:18.0'
    compile 'com.theartofdev.edmodo:android-image-cropper:1.0.4'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.google.android.gms:play-services-ads:8.1.0'
    compile 'com.google.android.gms:play-services-identity:8.1.0'
    compile 'com.google.android.gms:play-services-gcm:8.1.0'
}

提前致谢。

【问题讨论】:

  • 请在此处发布您的 gradle 文件
  • 试试gradle clean assemble
  • @hrskrs 也尝试了“gradle clean assemble”,但没有帮助。
  • 我遇到了完全相同的问题。当我切换到 buildtools 23.0.1 并将播放服务升级到 8.1 时发生了这种情况。
  • 请专家帮忙解决一下?我还在徘徊..

标签: android exception android-studio


【解决方案1】:

我认为问题可能出在您的依赖项关闭中:

首先,您的 Google Play 服务配置是多余的,您正在编译完整的 Play 服务 API 和单独的 Play 服务 API。尝试仅使用个人 Play 服务。蜜蜂。见Google Play Services Setup Docs

其次,可能你的multidex配置有误,见Multidex Docs

第三,尝试将你的 android 支持依赖更新到最新的可用版本

更新

根据 gcr 的反馈,该问题是由 Google Play 服务中的依赖重复引起的(完整的 API 和个人 API 在同一个 build.gradle 文件中)。

【讨论】:

  • 我已删除播放服务并添加了所需内容。构建现在很好,没有 ProcessException。太谢谢了! Multidex 我最近更正了它,所以应该是正确的。为了保持答案通用,我建议您编辑答案以说要处理依赖重复。它可能是播放服务或其他东西。
猜你喜欢
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多