我得到这个错误,而我正在构建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工作室。重建项目,但没有一个为我工作。


当前回答

在android文件夹根的本地属性中设置最小sdk版本为21:

flutter.minSdkVersion=21

在app->build.gradle中

defaultConfig {
        [...]
        minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()

根据文件:

注意:当针对Android SDK 21或更高版本时,Multidex支持是原生的。

他们还谨慎地警告说:

但是,不建议仅仅针对API 21+来解决多重索引问题,因为这可能会无意中排除运行旧设备的用户。

但是SDK 21在10年前就发布了Android版本5,0 Lollipop,如你所见:https://en.wikipedia.org/wiki/Android_Lollipop(更不用说这些设备,如果它们仍然存在,通常有能力升级他们的Android版本)。

其他回答

找到了解决方案。

将此代码添加到build.gradle中,

dependencies {
    def multidex_version = "2.0.1"
    implementation 'androidx.multidex:multidex:$multidex_version'
}

then enable the multidex to true

 defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 28
        multiDexEnabled true
    }


这解决了我的问题。

cd android && ./gradlew clean

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

org.gradle.jvmargs = -Xmx4608m

我在活动中实现了黑暗模式。我刚刚声明了属性标签,没有在任何地方使用它,所以得到了同样的错误。确保在代码中声明、定义和使用了所有的资源值(特别是属性标记)。

如果你有这样的资源错误,那么你将不会得到一个适当的问题纠正通过android工作室。您必须小心地撤消更改。

我也有同样的问题,你可以加上这个

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

但我的情况是这样的:

来自: org.gradle。jvmargs = -Xmx2048m -Dfile.encoding = utf - 8

: org.gradle。jvmargs = -Xmx4608m -Dfile.encoding = utf - 8