【问题标题】:Android Studio TransformException : Error:Execution failed for task ':app:transformClassesWithDexForDebug'Android Studio TransformException:错误:任务':app:transformClassesWithDexForDebug'的执行失败
【发布时间】:2016-02-28 05:02:58
【问题描述】:

当我尝试使用 Android Studio 运行应用程序时出现以下异常:

错误:任务 ':app:transformClassesWithDexForDebug' 执行失败。 com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_05 \bin\java.exe'' 以非零退出值 2 结束

【问题讨论】:

标签: java android android-studio


【解决方案1】:

我有同样的问题,经过几个小时的研究,我找到了解决方法。

你应该修复 build.gradle

android {

    compileSdkVersion ..
    buildToolsVersion '...'

    defaultConfig {
       ...
       targetSdkVersion ..
       multiDexEnabled true  // this line will solve this problem
   }
}

如果您的应用中的方法引用数量超过 65K 限制,您的应用可能无法编译。

有关如何执行此操作的信息,请参阅 Selectively compiling APIs into your executableBuilding Apps with Over 65K Methods

【讨论】:

  • 你是怎么想到这个解决方案的@Danh DC?为我工作,但想知道你是怎么得到这个的。
  • @MarkaA 如果您的应用程序中的方法引用数量超过 65K 限制,您的应用程序可能无法编译。在编译您的应用程序时,您可以通过仅指定您的应用程序使用的特定 Google Play 服务 API 而不是所有这些 API 来缓解此问题。有关如何执行此操作的信息,请参阅 developers.google.com/android/guides/setup#splitdeveloper.android.com/tools/building/multidex.html
  • 明确地说,build.gradle 中的内容是multiDexEnabled true。 Android Studio 不会自动执行此操作也有点愚蠢,特别是当依赖项/库似乎计入 65K 限制时。我的应用在其第一方代码中肯定没有接近 65K 的方法引用。
【解决方案2】:

在我使用 android studio 2.0 preview 4 的情况下,我突然遇到了这个问题,添加 multiDexEnabled true 没有帮助,而且清理和重建也没有帮助。

所以为我解决的唯一方法是删除该文件:

YOUR_APP_NAME\app\build\intermediates

并运行应用程序,它就可以工作了。

【讨论】:

  • 在我这样做之后,我又遇到了一些关于在中间体中创建一些目录时遇到困难的构建错误,但是手动添加到我能够构建的项目中。谢谢@humazed!
  • 谢谢。这是在我的情况下(AS 3.0.1)在 Windows 10 Pro 上修复它的唯一方法。我尝试了其他方法(重启AS、清空项目、重建项目、使缓存无效/重启...)均无济于事。
【解决方案3】:

修改模块级build.gradle文件

 android {
    ...

    // Enabling multidex support.
    multiDexEnabled true
}
...

}

添加依赖 编译'com.android.support:multidex:1.0.0'

在您的清单中添加 MultiDexApplication 类

<manifest ...>
<application
    ...
    android:name="android.support.multidex.MultiDexApplication">
    ...
</application>

http://developer.android.com/studio/build/multidex.html

【讨论】:

    【解决方案4】:

    对我来说,关闭所有其他 Android Studio 解决了这个问题。

    收到错误时我打开了 3 个 android studio,关闭 2 个后我没有收到任何错误。

    不需要添加任何与multiDex相关的代码!

    似乎有一些与 jvm 相关的内存问题。

    【讨论】:

      【解决方案5】:

      刚刚解决了这个问题。就我而言,重建项目对我有帮助。 因此,请尝试重建您的项目。

      【讨论】:

        【解决方案6】:

        添加以下行:

        multiDexEnabled true
        

        build.gradledefaultConfig

        像这样:

        defaultConfig{
            multiDexEnabled true
        }
        

        【讨论】:

          【解决方案7】:

          在我的情况下,将 buildToolsVersion 从“24”更改为“23.0.2”,即可解决问题。这将解决问题,尤其是在您使用低于版本 2 的旧 Android Studio 时。

          【讨论】:

            【解决方案8】:

            我从here找到了答案: 使用以下内容更改build.grade 文件后

            minSdkVersion 21

            targetSdkVersion 25

            multiDexEnabled 真

            工作正常。

            【讨论】:

              【解决方案9】:

              就我而言 - 清理项目并重建

              【讨论】:

              • 这应该是评论,而不是答案。
              【解决方案10】:

              在我的情况下,我在 Expo 和 Android Studio 之间来回切换以获取原生反应。 Expo想要一个应用程序名称来构建,而Android Studio想要另一个,一旦我把它放回android studio想要它构建和部署的名称。

              世博会

              AppRegistry.registerComponent('main', () =&gt; App);

              Android 工作室

              AppRegistry.registerComponent('AwesomeProject', () =&gt; App);

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2016-12-18
                • 2016-09-26
                • 2017-09-01
                • 2016-02-16
                • 1970-01-01
                • 2023-03-22
                相关资源
                最近更新 更多