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

apu*_*kar 9 android gradle android-studio

构建APK时出现此错误。

Cause 1: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
    at org.gradle.workers.internal.DefaultWorkerExecutor$WorkerExecution.waitForCompletion(DefaultWorkerExecutor.java:285)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:115)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:87)
    at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:150)
    at com.android.build.gradle.internal.tasks.Workers$WorkerExecutorAdapter.await(Workers.kt:282)
    at com.android.ide.common.resources.MergeWriter.end(MergeWriter.java:48)
    at com.android.ide.common.resources.MergedResourceWriter.end(MergedResourceWriter.java:242)
    at com.android.ide.common.resources.DataMerger.mergeData(DataMerger.java:292)
    at com.android.ide.common.resources.ResourceMerger.mergeData(ResourceMerger.java:384)
    at com.android.build.gradle.tasks.MergeResources.lambda$doFullTaskAction$1(MergeResources.java:261)
    at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:58)
Run Code Online (Sandbox Code Playgroud)

试图使缓存无效并重新启动 android studio.Rebuild项目,但它们都不适合我。

Raj*_*dav 41

尝试这个, in Android Studio

File > Invalidate Caches/Restart... 
Run Code Online (Sandbox Code Playgroud)

  • 我这样做了,但在构建项目后仍然遇到类似的错误。 (4认同)
  • 雅达。感谢您的回复。问题出在 Android Gradle 构建工具的最新不稳定版本上。我降级到最新的稳定版本,问题就消失了。 (2认同)

Abi*_*san 33

就我而言,我启用了 multidex

打开[project_folder]/app/build.gradle并添加以下行。

defaultConfig {
    ...

    multiDexEnabled true
}
Run Code Online (Sandbox Code Playgroud)

dependencies {
    ...

    implementation 'com.android.support:multidex:2.0.1'
}
Run Code Online (Sandbox Code Playgroud)


小智 20

我已经启用了 multidex 但版本太旧所以升级并解决了问题:

// Old version
implementation "com.android.support:multidex:1.0.3"
Run Code Online (Sandbox Code Playgroud)
// New version
def multidex_version = "2.0.1"
implementation "androidx.multidex:multidex:$multidex_version"
Run Code Online (Sandbox Code Playgroud)

  • 实现 'androidx.multidex:multidex:$multidex_version' 需要“...”而不是“...” (2认同)

小智 15

遇到类似的问题...我的修复方法是更改​​/更新 gradle 版本

   classpath "com.android.tools.build:gradle:4.1.2" 
Run Code Online (Sandbox Code Playgroud)

   classpath "com.android.tools.build:gradle:4.1.3"
Run Code Online (Sandbox Code Playgroud)

为我工作


apu*_*kar 13

Finally found a solution for this by adding this line to gradle.properties.

org.gradle.jvmargs=-Xmx4608m

  • 我不知道这有什么用,但它有效,你能添加一些信息吗? (11认同)
  • org.gradle.jvmargs 表示将传递给构建期间使用的 Java 虚拟机的参数。带有数字的 Xmx 选项(在这种非常特殊的语法中)通常用于设置堆的最大大小(以兆字节为单位),而 Xms 用于设置最小堆大小。 (8认同)
  • 有关此问题的更多指导,请滚动到堆栈跟踪的底部,我的是`Caused by: org.gradle.api.GradleException: Can't process attribute android:fillColor="@android:color/holo_red_dark":references to构建时 PNG 生成不支持其他资源。文件已进行预处理,因为 Android 5.0(API 级别 21)中添加了矢量绘图支持` (6认同)
  • /sf/ask/4049701421/ 在这里回答 (2认同)
  • 我已经应用了你的解决方案,但仍然出现错误。失败:构建失败并出现异常。* 出了什么问题:任务“:app:mergeDebugJavaResource”执行失败。> 执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障 > 文件“com.android.builder.files.ZipCentralDirectory@3a9a7373”已删除,但在缓存中找不到以前的版本 (2认同)

小智 13

gradle.proprites

org.gradle.jvmargs=-Xmx1536M
Run Code Online (Sandbox Code Playgroud)

构建.gradle

defaultConfig {
        multiDexEnabled true
    }

dependencies {
    implementation 'com.android.support:multidex:1.0.3'
}
Run Code Online (Sandbox Code Playgroud)

然而这些东西并没有解决我的问题,直到我将compileSdkVersion从27增加到28,它对我有用。

android {
    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
         minSdkVersion 21
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            crunchPngs false
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Sav*_*tel 7

classpath 'com.android.tools.build:gradle:3.3.2' 改变类路径就可以了。


dev*_*vio 7

请检查当前图标是否不在调试文件夹中,如果是,请将它们移动到主文件夹或重新创建它们在此输入图像描述


小智 6

我通过添加以下几行删除了这个问题

multiDexEnabled true在 defaultConfig 中添加android>app>build.gradle

implementation 'com.android.support:multidex:1.0.3'在依赖项中添加android>app>build.gradle


Akb*_*adi 6

在我的代码中,我使用最新版本的 flutter 和软件包,并通过添加以下行来删除此错误

multiDexEnabled true 
Run Code Online (Sandbox Code Playgroud)

在应用程序级别 build.gradle


小智 6

我也有同样的问题,你可以补充一下

org.gradle.jvmargs=-Xmx4608m在你的Gradle.properties

但就我而言,我会这样改变:

从 : org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8

到: org.gradle.jvmargs=-Xmx4608m -Dfile.encoding=UTF-8


Mor*_*ard 5

只有在构建到 Lollipop 或 Marshmallow 时,我才得到与您类似的堆栈跟踪,解决方案是禁用高级分析。

在这里找到它:

运行 -> 编辑配置 -> 分析 -> 启用高级分析

/sf/answers/4062081761/


小智 5

搜索您的代码,您必须color.xml在 xml drawable 中引用颜色。去并给出十六进制代码而不是引用....

示例:在drawable.xml你必须调用

android:fillColor="@color/blue"
Run Code Online (Sandbox Code Playgroud)

更改它以android:fillColor="#ffaacc" 希望它解决您的问题...


Gg *_*g M 5

在 android studio 的右侧单击 gradle -> app -> build -> assemble。然后 android studio 将开始构建,并向您打印有关该问题的正确消息。


COR*_*ian 5

解决方案:

Caused by 4: com.android.builder.internal.aapt.AaptException: Dependent features configured but no package ID was set.
Run Code Online (Sandbox Code Playgroud)

所有功能模块都必须应用library插件而不是application插件。

build.gradle(:androidApp:feature_A)

apply plugin: 'com.android.library'
Run Code Online (Sandbox Code Playgroud)

这一切都取决于每个人的堆栈跟踪。原因 1WorkExecutionException可能是其他原因的结果。因此,我建议阅读从最后一个原因打印到第一个原因的完整堆栈跟踪。因此,如果我们解决了最后一个原因,很可能我们就修复了从最后一个到第一个的原因链。

我附上了我的堆栈跟踪的示例,其中原始或具体问题位于最后一个原因中:

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction

Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-4.2.0-alpha16-6840111-linux Daemon #0: Unexpected error during link, attempting to stop daemon.

Caused by: java.io.IOException: Unable to make AAPT link command.

Caused by 4: com.android.builder.internal.aapt.AaptException: Dependent features configured but no package ID was set.
Run Code Online (Sandbox Code Playgroud)

GL

未设置功能包ID


归档时间:

查看次数:

10637 次

最近记录:

6 年 前