Flutter编译遇AAR元数据报错及系列警告问题咨询
Flutter 多阶段编译报错/警告处理方案
核心结论:你看到的两条红色高亮Note不是编译故障根因,属于Java编译器的通用提示,不影响APK正常构建、安装和运行。
各问题对应处理方式
1. 初始checkDebugAarMetadata任务执行失败
- 故障原因:依赖
androidx.media2:media2-session:1.2.0的AAR元数据声明最低要求compileSdk为31,原项目配置的compileSdkVersion为30,版本要求不匹配 - 修复方案:将
android/app/build.gradle中的compileSdkVersion修改为31,该操作你已经完成,是正确的修复方式。
2. 新旧命名空间映射警告
- 警告原因:项目使用的Gradle、Android Gradle插件版本过低,和compileSdk 31对应的SDK仓库XML命名空间版本不兼容
- 修复方案:
- 将项目根目录
build.gradle中com.android.tools.build:gradle版本升级到7.0及以上 - 将
gradle/wrapper/gradle-wrapper.properties中对应的Gradle版本升级到7.2及以上 - 打开Android SDK Manager,将Android 12(API 31)对应的SDK Platform、Build-Tools、Platform-Tools更新到最新版本
该警告你已经通过修改Gradle配置消除,无遗留问题。
- 将项目根目录
3. media2-session库混合引用AndroidX与旧support库警告
- 警告原因:
androidx.media2:media2-session:1.2.0版本本身存在AndroidX迁移不完全的问题,同时存在新旧依赖包的类引用,构建时Jetifier会自动完成类转换,不会引发功能异常 - 处理方案:
- 无特殊要求可直接忽略该警告,Jetifier转换逻辑稳定,不会影响运行
- 要彻底消除警告,在
android/app/build.gradle中添加强制版本统一配置,替换存在问题的1.2.0版本:
1.3.0及以上版本已经修复了混合引用的问题。configurations.all { resolutionStrategy.force 'androidx.media2:media2-session:1.3.0' resolutionStrategy.force 'androidx.media2:media2-common:1.3.0' }
4. 红色高亮的废弃API提示
提示原文:
Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.
- 提示本质:这是Java编译器的标准提示,含义是项目代码或依赖库中存在调用已标记为废弃API的情况,不属于报错,不会阻塞打包流程,控制台红色高亮是编译器对这类提示的默认显示规则,不代表存在致命问题。
- 查看具体废弃项的方法:如果需要定位具体废弃调用的位置,在
android/app/build.gradle的android配置块中添加以下编译参数:
重新执行编译,控制台会输出所有废弃API调用的具体文件位置、对应的替代方案说明,可按需将废弃调用替换为官方推荐的新API,也可直接忽略,不影响功能正常使用。android { // 保留原有其他配置 gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:deprecation" } } }
5. 启动页废弃警告
- 警告原因:当前使用的Flutter版本已废弃旧版Android原生启动页的配置方式
- 处理方案:功能不受影响,可直接忽略;如需消除警告,按照新版启动页规范调整配置即可。
内容的提问来源于stack exchange,提问作者Perpetually Curious
相关产品推荐
相关产品推荐

