【问题标题】:How to fix this error "A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade"如何修复此错误“执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障”
【发布时间】:2020-01-24 20:19:03
【问题描述】:

我无法在 AVD 上运行我的应用。我收到此错误。

执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障

我的build.gradle

android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
    applicationId "com.example.myapplication"
    minSdkVersion 15
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}[E][1]}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'}

【问题讨论】:

标签: android android-studio


【解决方案1】:

我终于修好了。

  • 更改org.gradle.jvmargs=-Xmx1536morg.gradle.jvmargs=-Xmx1536m -Duser.country=US -Duser.language=en

  • 更改classpath 'com.android.tools.build:gradle:3.5.0'classpath 'com.android.tools.build:gradle:3.4.2'


Android Studio - How to fix Internal error when trying to read zip file

【讨论】:

  • 谢谢你,org.gradle.jvmargs=-Xmx1536m -Duser.country=US -Duser.language=en 为我工作
  • 我将 classpath 'com.android.tools.build:gradle:3.5.3' 更改为 classpath 'com.android.tools.build:gradle:3.5.2'
【解决方案2】:

只需从以下版本降级

classpath 'com.android.tools.build:gradle:3.5.0'

classpath 'com.android.tools.build:gradle:3.4.2'

那么不需要改变任何东西,

如果不行,你可以试试Invalidate Caches/Restart

【讨论】:

  • 在使用 Ionic 构建时必须从 Gradle 版本 4.0.0 降级到 3.4.2。你知道为什么这个解决方案有效吗?
  • 从 4.0.1 降级到 3.4.2 是唯一对我有用的解决方案。谢谢!
【解决方案3】:

通过更新 gradle.properties 中的 org.gradle.jvmargs,确保您有足够的 RAM 用于 gradle 进程。

确保您的 Gradle 版本和 gradle 插件兼容;请参阅此表:https://developer.android.com/studio/releases/gradle-plugin#updating-gradle(我建议在撰写本文时使用 gradle 5.4.1 的插件 3.5.3!)

有些人可能会在不知不觉中发生什么,那就是没有使用 JDK 8!我尝试使用 JDK 11 并看到许多不同的 R8 和 dexing 错误!看起来整个设置也不适用于 Eclipse OpenJ9 JDK 发行版!所以请确保您使用的是操作系统的标准 OpenJDK(我的将是来自 Debian 的默认 OpenJDK-8)

【讨论】:

  • 我使用以下行修改了我的 gradle.properties 文件,以在运行 Android 构建时解决 OutOfMemroyError 异常。我的理解是,这是默认内存设置的两倍,与 XX:MaxPermSize 参数相比,增加 Xmx 值会产生更好的结果。如果您需要更多,只需增加 Xmx 参数即可。 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
【解决方案4】:

这行得通:

gradle.properties.org.gradle.jvmargs=-xmx4608m

【讨论】:

  • 之前,使缓存无效并重新启动对我有用,但问题再次浮出水面。然后 gradle.properties.org.gradle.jvmargs=-xmx4608m 工作。
【解决方案5】:

对于那些害怕降低 gradle 的人,建议这样做,因为这解决了我的问题。 降级自:

classpath 'com.android.tools.build:gradle:4.0.3'

到:

classpath 'com.android.tools.build:gradle:4.0.0'

【讨论】:

    【解决方案6】:

    我在 Flutter 项目中遇到了同样的问题,并且在尝试构建/调试时突然发生。甚至“文件>无效缓存/重新启动...”都没有任何效果。最后我做了一个“flutter clean”和“flutter packages get”,它成功了。

    【讨论】:

      【解决方案7】:

      在我的情况下,由于 gradle 包装器中的 gradle 版本从 6.2 all 升级到 6.6 all 而出现问题。所以我擦除了 avd 的数据并重新启动它,然后删除了 .android/.gradle 中的 gradle 文件夹,然后运行 ​​yarn start --reset-cacheyarn安卓。然后它对我有用

      【讨论】:

        【解决方案8】:

        任何矢量资产也可能出现此错误。 我通过删除该矢量资产文件来解决。 请检查您最近是否对矢量资产文件进行了任何更改。

        【讨论】:

          【解决方案9】:

          在我的例子中,我在 launch_background.xml 文件中提到了android:src = "@drawable/screen"

          但是,无法在可绘制文件夹中添加图像。将图像 screen.jpg 放在可绘制文件夹中解决了我的问题。

          【讨论】:

          • 这为我指明了正确的方向,我的 launch_screen.xml 中有错字,非常感谢!
          【解决方案10】:

          有同样的问题,建议的解决方案对我不起作用。 在我的情况下,问题是由签名配置引起的:我确实设置了storePassword 字段,但没有在我的signingConfigs 部分设置keyPassword 字段(密码相同)。 因此,如果您在应用程序的build.gradle 文件中有签名配置,请尝试在File -> Project Structure -> Modules 对话框中设置Key Password 字段,或在signingConfigssigningConfigs 部分中添加keyPassword 字段@:

          android {
              signingConfigs {
                  release {
                      storeFile file('C:\\PathToKey\\key.jks')
                      storePassword 'myPassword'
                      keyAlias 'myAlias'
                      keyPassword 'myPassword'
                  }
              }
              ...
          }
          

          【讨论】:

          • 由于某种原因,我设置它以从文件中提取 keyPassword 的方式停止工作。我从没想过会根据这个极其奇怪的错误进行调查,非常感谢!
          【解决方案11】:

          成功了。在 VSCode 上使用这些命令。

          1. 扑干净
          2. flutter pub 缓存修复

          【讨论】:

            【解决方案12】:

            我使用的是 Android Studio 4.0.0,一切都很好,直到清理和重建项目时突然出现此错误。我不知道为什么。我尝试了许多建议的解决方案,但没有运气。最后我尝试卸载 Android Studio 4.0.1,这个错误消失了,可以像以前一样在模拟器中运行

            【讨论】:

              【解决方案13】:

              运行 Flutter Clean,然后重启你的机器。

              这对我有用。

              【讨论】:

                【解决方案14】:

                将此行添加到 gradle.properties。

                org.gradle.jvmargs=-Xmx4608m
                

                【讨论】:

                  【解决方案15】:

                  我遇到了同样的错误。这解决了我的问题。

                  1. 'com.android.tools.build:gradle:3.5.0' 更改为'com.android.tools.build:gradle:4.1.3'
                  2. File -->> Invalid caches/Restart
                  3. pubspec.yaml -->> pub upgrade
                  4. 将依赖项版本更改为最新
                  5. Pub get
                  6. flutter run

                  【讨论】:

                    【解决方案16】:

                    检查您的 APK 是否被外部工具(甚至 IDE)锁定

                    (...)\app\release\app-release.apk
                    

                    【讨论】:

                      【解决方案17】:

                      我所做的只是重新启动计算机。它适用于 android studio 引发的许多此类垃圾错误。

                      【讨论】:

                        【解决方案18】:

                        就我而言,我解决了问题

                        1. 卸载我的杀毒软件(从 chrome 下载)。

                        “ionic cordova build android”命令再次开始工作

                        【讨论】:

                          【解决方案19】:

                          我的 build.gradle(项目)

                          buildscript {
                          repositories {
                              google()
                              jcenter()
                          }
                          dependencies {
                              classpath 'com.android.tools.build:gradle:3.5.0'
                              // NOTE: Do not place your application dependencies here; they belong
                              // in the individual module build.gradle files
                          }
                          }
                          allprojects {
                          repositories {
                              google()
                              jcenter()
                          }
                          }
                          task clean(type: Delete) {
                          delete rootProject.buildDir
                          }
                          

                          我的 gradle 包装器

                          distributionBase=GRADLE_USER_HOME
                          distributionPath=wrapper/dists
                          zipStoreBase=GRADLE_USER_HOME
                          zipStorePath=wrapper/dists
                          distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
                          

                          【讨论】:

                            猜你喜欢
                            • 2021-04-27
                            • 1970-01-01
                            • 2021-01-30
                            • 1970-01-01
                            • 1970-01-01
                            • 2022-10-22
                            • 2021-04-14
                            • 2020-07-05
                            • 2021-05-19
                            相关资源
                            最近更新 更多