【问题标题】:Android Studio preDexDebug and preDexRelease get stuckAndroid Studio preDexDebug 和 preDexRelease 卡住
【发布时间】:2014-12-30 14:44:31
【问题描述】:

我正在使用 Android Studio 1.0.2 和 Gradle。 gradlew 命令 compileDebugJava 运行得很好,但是当我运行 compileDebug 时,构建过程会卡在 app:preDexDebug。当我从 Windows 命令提示符运行命令时,我可以看到处理步骤总是在冻结之前完成 78%。没有错误信息。它只是卡住了。

如果需要,请索取更多信息,因为我没有提供它只是因为我不知道什么有用。

在我将目标 Android API 从 19 更改为 21 并稍微更改了我的依赖项之前。这些是我当前的依赖项:

dependencies {
    //compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'ch.acra:acra:4.5.0'
    compile 'com.google.android.gms:play-services-games:6.5.87'
    compile 'com.google.android.gms:play-services-plus:6.5.87'
    compile 'com.google.android.gms:play-services-appstate:6.5.87'
    compile 'com.android.support:appcompat-v7:21.0.3'
}

编辑:

这是我执行命令gradlew compileDebug --debug后得到的最后几行

19:41:12.705 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':app:preDexDebug'.
19:41:12.709 [INFO] [org.gradle.api.internal.changedetection.changes.RebuildIncrementalTaskInputs] All input files are considered out-of-date for incremental task ':app:preDexDebug'.
19:41:12.727 [INFO] [org.gradle.api.Project] deleteDir([project path]\app\build\intermediates\pre-dexed\debug) returned: true
19:41:12.883 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\support-annotations-21.0.3-f48e1e2d7fed6fd712d566edcfe5446521dd959c.jar [sdk path]\extras\android\m2repository\com\android\support\support-annotations\21.0.3\support-annotations-21.0.3.jar
19:41:12.884 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\classes-920ebcdb8b3cfaba9b90d0f66feb55760d423363.jar [project path]\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-appstate\6.5.87\classes.jar
19:41:12.884 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\classes-86902da0c51206b900608e2edb367d123dbaf04f.jar [project path]\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-plus\6.5.87\classes.jar
19:41:12.884 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\internal_impl-21.0.3-3d47273c8cdf03ba3e7b9c20952c50740d93498c.jar [project path]\app\build\intermediates\exploded-aar\com.android.support\support-v4\21.0.3\libs\internal_impl-21.0.3.jar
19:41:12.885 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\acra-4.5.0-adedb5c8d6e931ec4ff3c31d7e45ba018b21026a.jar [user root]\.gradle\caches\modules-2\files-2.1\ch.acra\acra\4.5.0\44a5eb946e0d83eed4a0128d877ca1fd8168b83a\acra-4.5.0.jar
19:41:12.903 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\classes-048b7b5d8c155de5d2796564db58a43a8b9cc429.jar [project path]\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-games\6.5.87\classes.jar
19:41:12.911 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\classes-73e2551a5d112c60cea4e094fef4cf6fa73f8986.jar [project path]\app\build\intermediates\exploded-aar\com.google.android.gms\play-services-base\6.5.87\classes.jar
19:41:12.926 [INFO] [org.gradle.api.Project] command: [sdk path]\build-tools\20.0.0\dx.bat --dex --verbose --output [project path]\app\build\intermediates\pre-dexed\debug\classes-dc8324f5ce54136fc613d3f6f22fd716ccf64d9d.jar [project path]\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\21.0.3\classes.jar

编辑2:

我尝试过的事情:

  • 清理项目
  • 从 Git 存储库再次下载我的整个项目,删除过程中的任何其他文件
  • 使 Android Studio 缓存失效
  • 从两个 gms 包中排除 play-services-base,因为它显然是捆绑在一起的

编辑3:

现在它卡在了具有非常相似的信息转储的 mergeDebugResources 上。

编辑4:

在我的 Linux 机器上使用完全相同的源文件和完全相同的设置进行构建。

【问题讨论】:

    标签: android compilation android-studio android-gradle-plugin


    【解决方案1】:

    这不是一个确定的答案,但它是与系统进行大量斗争的结果。

    错误似乎是在构建过程被强制停止时出现的。 adb 似乎进入了一个奇怪的状态,之后它总是会卡住。此外,由于您无法再完成构建,因此错误会叠加并可能变得更糟。

    当您安装了 Android API 的预览版并随后将其升级到完整版时,也可能会出现此问题。对我来说,这发生在 Android L 预览版中。

    遇到此错误时的尝试

    • 如果您最近更改了目标 API,请检查您的主 bu​​ild.gradle 文件。目前(SDK 21,构建工具 21.1.2)它应该在依赖项中有一行 classpath 'com.android.tools.build:gradle:1.0.0',在根目录中应该有一行 task wrapper(type: Wrapper) { gradleVersion = '2.2.1' }
    • 清理您的项目
    • 如果您知道自己安装了预览 API 并随后对其进行了升级,请删除该 API 的所有包并确保它不留下任何痕迹。然后重新安装。
    • 检查你的依赖没有两次导入同一个包。相当多的软件包导入了其中一个 android 支持库。 You can exclude packages like this.
    • 等待下一个 Android Studio 版本或下一个 API 版本(愚蠢的解决方案,我知道)。
    • 如果您有虚拟机或其他系统,请尝试使用这些系统运行项目(我知道这是更愚蠢的解决方案)。

    对我来说,当我将我的 Android Studio 从 1.0.2 更新到 1.1 时,这个问题已经得到解决。我不确定这是否是实际修复,或者在我执行此操作时是否有其他修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2015-04-23
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多