Flutter迁移Android 13(API 33)时R8构建失败问题求助
解决Flutter迁移Android 13(API 33)的R8构建失败问题
1. 获取完整异常日志
你提供的异常信息不完整,重新执行构建任务,查看transformClassesAndResourcesWithR8ForPro的完整报错内容,重点关注Caused by开头的部分,它会明确指出具体的类冲突、缺失或混淆规则问题,这是定位根源的核心。
2. 升级Gradle相关依赖
Android 13适配需要配套的Gradle工具版本,按以下步骤更新:
- 在项目根目录的
build.gradle中,将Android Gradle插件版本升级到7.4.0及以上:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.2' // 其他依赖项 } } - 同步更新Gradle wrapper版本,修改
gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 调整混淆规则(若启用混淆)
如果开启了代码混淆(minifyEnabled true),需针对Android 13 API补充或修正混淆规则:
- 在
app/proguard-rules.pro中添加适配规则,示例:# Android 13核心API兼容 -keep class android.app.NotificationManager** { *; } -keep class android.os.PowerManager** { *; } # 根据完整日志提示的报错类,补充对应的keep规则 - 检查第三方依赖库的混淆规则,确保旧库适配API 33的要求。
4. 替换旧测试运行器
你已启用AndroidX,但仍使用旧的支持库测试运行器,需替换为AndroidX版本:
defaultConfig { // 其他配置项 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }
5. 清理缓存后重新构建
执行以下操作清除旧缓存,避免干扰:
- 运行Flutter命令:
flutter clean - 手动删除项目根目录的
.gradle文件夹和app/build文件夹 - 重新执行构建:
flutter build apk或flutter run
内容的提问来源于stack exchange,提问作者Tabarek Ghassan
相关产品推荐
相关产品推荐

