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

Gradle无法生成Release APK:ShrinkProtoResourcesAction报文件提前结束错误

Gradle构建Release APK失败:ShrinkProtoResourcesAction解析错误解决方法

构建Release APK时,会触发:app:shrinkReleaseRes任务失败,错误日志如下:

Execution failed for task ':app:shrinkReleaseRes'.
> A failure occurred while executing com.android.build.gradle.internal.transforms.ShrinkProtoResourcesAction
   > ParseError at [row,col]:[21,1]
     Message: Premature end of file.

伴随的其他症状:

  • 找不到或无法打开ShrinkProtoResourcesAction文件
  • ProGuard配置无异常
  • 能正常生成.aab安装包
  • 执行flutter build apk命令时也会出现相同问题

解决办法

1. 清理缓存后重新构建

直接执行以下命令清理项目缓存和旧构建文件,再重新打包:

# Flutter项目执行
flutter clean
rm -rf android/app/build
flutter build apk --release

原生Android项目对应命令:

./gradlew clean
./gradlew assembleRelease

2. 临时禁用资源压缩

如果着急打包,可先在android/app/build.gradle的release构建块中关闭资源压缩:

buildTypes {
    release {
        // 关闭资源压缩和代码混淆(临时方案)
        shrinkResources false
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

注意:这么做会让APK体积变大,只是应急用,后续还是要找根本问题。

3. 检查资源文件完整性

错误提示的Premature end of file说明有资源文件损坏或不完整,重点排查:

  • 检查res/目录下的XML文件,尤其是错误提示中第21行附近的文件,看是否有未闭合的标签或截断内容
  • 排查第三方依赖的资源,试试更新依赖版本,或者排除有问题的依赖库
  • 确认assets/目录下的Proto文件是否完整,有没有被意外截断

4. 更新Gradle构建工具版本

旧版本的Gradle或Android Gradle Plugin可能存在已知bug,更新到稳定版试试:
在android/build.gradle中更新插件版本:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // 替换成最新稳定版,比如7.4.2
        classpath 'com.android.tools.build:gradle:7.4.2'
        // Flutter项目还要更新Flutter Gradle插件
        classpath "dev.flutter:flutter-gradle-plugin:2.10.5"
    }
}

同时更新gradle/wrapper/gradle-wrapper.properties里的Gradle版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:10:26