开发Flutter Android应用时遭遇构建失败及插件兼容问题求助
我来帮你搞定这两个Flutter Android构建里的问题,先处理直接导致构建失败的资源编译错误,再解决插件弃用的警告:
一、修复mergeDebugResources资源编译失败问题
你碰到的无效配置'h??????dp-v13'和sw??????dp-v13'错误,是因为构建过程生成了乱码的资源目录,大概率是Gradle缓存或字符编码出了问题,试试下面的方案:
清理项目缓存与构建文件
这是最常用的解决思路,先彻底清理再重新构建:# 清理Flutter项目缓存 flutter clean接着手动删除Android目录下的
.gradle文件夹(路径:/Users/mac/Desktop/main_files/source/news_app/android/.gradle),最后重新运行项目:flutter run统一字符编码配置
在项目根目录的gradle.properties文件中添加以下配置,确保构建过程使用UTF-8编码:org.gradle.jvmargs=-Dfile.encoding=UTF-8 android.overridePathCheck=true手动移除乱码资源目录
直接删掉报错的乱码目录:/Users/mac/Desktop/main_files/source/news_app/build/app/intermediates/incremental/mergeDebugResources/merged.dir/values-h??????dp-v13/ /Users/mac/Desktop/main_files/source/news_app/build/app/intermediates/incremental/mergeDebugResources/merged.dir/values-sw??????dp-v13/删除后重新执行构建命令即可。
二、处理facebook_audience_network插件弃用警告
这个警告提示插件用了已弃用的Android Embedding V1,未来Flutter版本会移除相关API,避免后续故障可以这么做:
升级插件到最新版本
打开项目的pubspec.yaml,检查facebook_audience_network的版本号,替换成最新版本,然后执行flutter pub get更新依赖,新版插件基本都适配了Embedding V2。迁移插件(针对插件开发者)
如果你是这个插件的维护者,需要把插件迁移到V2 Embedding:- 更新插件的
AndroidManifest.xml配置,移除旧的注册逻辑 - 把
FlutterActivity相关的旧API替换成V2版本的FlutterFragmentActivity或新版FlutterActivity - 调整插件的注册方式,使用新的
FlutterPlugin接口
- 更新插件的
替换插件(如果无法更新)
如果这个插件长时间没维护,没有适配V2的版本,建议换成其他活跃维护的广告插件,比如google_mobile_ads,它支持AdMob广告,功能稳定且适配最新的Flutter版本。
内容的提问来源于stack exchange,提问作者Haider Alzamily




