我得到这个错误,而我正在构建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)

试图使缓存无效并重新启动android工作室。重建项目,但没有一个为我工作。


当前回答

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

其他回答

当你试图构建一个使用VectorDrawable作为自适应图标的应用程序时,你可能会遇到这样的错误。和你的XML文件包含"android:fillColor"与<梯度>块:

res - drawable icon_with_gradient xml。

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt"
    android:width="96dp"
    android:height="96dp"
    android:viewportHeight="100"
    android:viewportWidth="100">

    <path
        android:pathData="M1,1 H99 V99 H1Z"
        android:strokeColor="?android:attr/colorAccent"
        android:strokeWidth="2">
        <aapt:attr name="android:fillColor">
            <gradient
                android:endColor="#156a12"
                android:endX="50"
                android:endY="99"
                android:startColor="#1e9618"
                android:startX="50"
                android:startY="1"
                android:type="linear" />
        </aapt:attr>
    </path>
</vector>

渐变填充颜色通常用于自适应图标,例如在教程中这里,这里和这里。

即使布局预览工作正常,当你构建应用程序时,你会看到这样的错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Error while processing Project/app/src/main/res/drawable/icon_with_gradient.xml : null

(More info shown when the gradle build is run with --stack-trace flag):

Caused by: java.lang.NullPointerException
    at com.android.ide.common.vectordrawable.VdPath.addGradientIfExists(VdPath.java:614)
    at com.android.ide.common.vectordrawable.VdTree.parseTree(VdTree.java:149)
    at com.android.ide.common.vectordrawable.VdTree.parse(VdTree.java:129)
    at com.android.ide.common.vectordrawable.VdParser.parse(VdParser.java:39)
    at com.android.ide.common.vectordrawable.VdPreview.getPreviewFromVectorXml(VdPreview.java:197)
    at com.android.builder.png.VectorDrawableRenderer.generateFile(VectorDrawableRenderer.java:224)
    at com.android.build.gradle.tasks.MergeResources$MergeResourcesVectorDrawableRenderer.generateFile(MergeResources.java:413)
    at com.android.ide.common.resources.MergedResourceWriter$FileGenerationWorkAction.run(MergedResourceWriter.java:409)

解决方案是将文件icon_with_gradient.xml移动到drawable-v24/icon_with_gradient.xml或drawable-v26/icon_with_gradient.xml。这是因为梯度填充只在API 24 (Android 7)及以上版本中支持。VectorDrawable:无效的可绘制标签梯度

最后通过将这一行添加到gradle.properties找到了解决方案。

org.gradle.jvmargs = -Xmx4608m

试着检查你的防病毒软件是否阻止了任何重要的Java 8文件

当我突然得到这个错误时,我的项目完全正常工作。我花了整整两个小时来解决这个问题。重启电脑并重新构建项目后,这个问题仍然存在,但随后我的反病毒软件(Avast)弹出一个窗口,说它“保护”了我免受危险文件的侵害。我只是允许文件,然后突然一切都像以前一样正常工作。

在我的情况下,这个问题是由于我替换了文件夹android/app/src/main/res的所有内容,因为我正在改变我的应用程序图标。

我的解决方案是保留这些文件夹: android / app / src / main / res /值 android / app / src / main / res / values-night

如果你已经尝试了上面所有的解决方案,仍然没有解决你的问题。

这看起来可能没有什么关联,但以下是我的看法。

试着从你的Gradle依赖中删除这个,因为这个障碍,我已经花了2个小时的时间。

实现“com.squareup.retrofit2: adapter-rxjava2:2.3.0”