【发布时间】:2016-08-07 04:30:28
【问题描述】:
我已升级到 Android Studio 2.1,但在尝试构建和运行我的公司大项目时出现此错误:
任务“:app:transformClassesWithDexForMyAppDebug”执行失败。 com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError: 超出 GC 开销限制
我已经搜索了论坛并禁用了即时运行,也写到我的 build.gradle:
dexOptions {
incremental true
javaMaxHeapSize "6g"
}
...
dependencies{
compile 'com.android.support:multidex:'
}
但这并没有解决我的问题。 我在我的 gradle 中启用了 multidex,因为没有它我会收到错误:
com.android.dex.DexIndexOverflowException: 方法 ID 不在 [0, 0xffff] 中:65536
所以这就是它的解决方案,它以前与 Android Studio 的早期版本一起工作(也为公司中使用 Android Studio 1.4-2.0 的其他人工作)但不适合我,因为我升级了我的 Android工作室。
有谁知道是什么导致了这个问题?
有趣的是,如果我只是创建项目,我不会得到错误,只有当我尝试运行它时。任何想法表示赞赏!
编辑1:
还有什么有趣的,如果我重新启动我的 android studio,第一次运行成功,但第二次没有。
编辑2:
如果我将堆大小设置为大于应用程序在第一次运行时甚至无法编译的大小(例如 8-10g)。
编辑 3:
似乎问题出在 instant run,如果我强制 android studio 不使用它(例如一次部署到两个设备或更改 gradle.properties 就像答案中一样),错误就会消失.
【问题讨论】:
-
Instant run 将方法添加到程序中,显然这会使您超过 65k 限制。您是否偶然将播放服务添加到您的依赖项中?
-
我在设置中禁用了即时运行,例如:stackoverflow.com/a/36637692/3162918
-
我整天都在试图解决这个错误......
-
有什么解决办法吗? @bendaf
-
如果我有我就不会问了:,˙(
标签: android android-studio android-build android-gradle-2.0 android-instant-run