【问题标题】:A failure occurred while executing com.android.build.gradle.internal.transforms.ShrinkAppBundleResourcesAction执行 com.android.build.gradle.internal.transforms.ShrinkAppBundleResourcesAction 时发生故障
【发布时间】:2022-08-21 18:20:04
【问题描述】:

我正在尝试为我的 Flutter 应用程序创建一个 appbundle。到目前为止,它一直运行良好,但由于某种原因,它现在给出了一个错误。我只是去了项目的文件夹并运行flutter clean,然后运行flutter build appbundle。尽管如此,它还是给出了以下错误:

Running \"flutter pub get\" in quotes...                           2.060ms

 Building with sound null safety

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task \':app:shrinkBundleReleaseResources\'.
> A failure occurred while executing com.android.build.gradle.internal.transforms.ShrinkAppBundleResourcesAction
   > java.nio.file.FileSystemAlreadyExistsException (no error message)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 43s
Running Gradle task \'bundleRelease\'...                            105,0s
Gradle task bundleRelease failed with exit code 1
  • 嘿@Antonio Peña 你找到解决方案了吗?我现在被这个问题困住了。
  • 是的,虽然我不记得具体要做什么。在这个问题的解决方案中提到了一些可能的答案。

标签: java android flutter gradle build.gradle


【解决方案1】:

我修复了这个错误,虽然不记得确切的方法。以下是我所做的一些事情,按重要性级别排序(最有可能在顶部回答)。

1.配置你的packagingOptions

转到您的 android/app/build.gradle 并在您的 android {...} 末尾添加以下代码 sn-p:

android {

    // Some stuff...

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }

}

2.查看buildTypes

再一次,在你的android/app/build.gradleandroid {...},你应该有一个buildscript {...} 里面。如果没有,请添加它。如果添加,请修改它对以下属性具有相同的值(packagingOptions 从添加的第一点开始):

android {

    // Some stuff...

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            signingConfig signingConfigs.release
        }
    }

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }

}

3.更新multidex

在你的android/app/build.gradle 中,更新你在dependencies {...} 的multidex。更新您那里的任何其他实现也很棒,但重要的是multidex。这是我的:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "androidx.multidex:multidex:2.0.1"
}

如果您的文件中没有dependencies {...},请将其添加到最后。

4.另一个依赖升级

这次它在另一个 gradle 文件中。路线是android/build.gradle,您只需输入buildscript {...} 并更新您在dependencies {...} 中找到的内容。就我而言:

buildscript {

    // Some stuff...

    dependencies {
        classpath "com.android.tools.build:gradle:7.1.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

5.增加你的org.gradle.jvmargs的价值

这是您的构建器可以占用多少内存来运行捆绑包的生成。越高越好,尽管它必须低于您的计算机/笔记本电脑的 RAM,并且不需要很大。我有一台 8 GB RAM 的笔记本电脑,使用以下配置没有任何错误:

org.gradle.jvmargs=-Xmx4608M
android.useAndroidX=true
android.enableJetifier=true

这是 RAM 功率的一半多一点。 4608M = 4.608 GB!

我为什么选择它?随机的。在更改它之前,它只有1204M 左右。

【讨论】:

    猜你喜欢
    • 2019-12-27
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2022-12-19
    • 2021-07-29
    相关资源
    最近更新 更多