You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Visual Studio Code中开发的应用打包为APK并解决构建报错问题

问题解决方案

1. 核心构建失败问题修复

你遇到的报错本质是资源压缩阶段的XML属性重复定义问题,Android构建工具在执行shrinkReleaseResources任务时,检测到resources元素上重复声明了http://schemas.android.com/tools命名空间下的keep属性,按以下步骤排查修复:

  • 找到项目中android/app/src/main/res/raw/或者android/app/src/main/res/xml/目录下的资源保留规则文件,通常命名为keep.xml
  • 打开该文件检查根节点<resources>的属性,删除重复的tools:keep声明即可,正常的配置应该仅保留1次tools:keep属性,示例正确配置如下:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@drawable/*,@raw/*" />
  • 如果没有自定义过keep.xml,则是你引入的第三方依赖同时声明了资源保留规则导致冲突,可在自己项目的android/app/build.gradle文件中添加以下配置解决冲突:
android {
    ...
    buildTypes {
        release {
            ...
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            // 新增下面的配置
            packagingOptions {
                exclude 'res/raw/keep.xml'
            }
        }
    }
}

2. 执行带--stacktrace的构建命令方法

你可以选择以下任意一种方式执行带堆栈日志的构建:

  • 方式一:直接在Flutter构建命令中传递gradle参数
flutter build appbundle --release --gradle-arg="--stacktrace"
  • 方式二:进入android目录执行gradle原生命令
# 进入安卓子目录
cd android
# Mac/Linux系统执行
./gradlew bundleRelease --stacktrace
# Windows系统执行
gradlew.bat bundleRelease --stacktrace

内容的提问来源于stack exchange,提问作者Adrian Alejo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:36:07