构建Flutter应用时Gradle突发报错,寻求技术解决方案
registerResGeneratingTask弃用警告 嘿,我之前也碰到过这个烦人的Gradle弃用提示,别慌,这大多是项目里的Gradle配置或者第三方依赖还在调用旧的API导致的,下面给你几个实用的解决办法:
升级Gradle插件与Gradle版本
先打开项目根目录下的android/build.gradle文件,找到dependencies块里的classpath 'com.android.tools.build:gradle:x.x.x',把它升级到适配你当前Flutter版本的稳定版(比如Flutter 3.x建议用Gradle插件7.0+)。接着打开android/gradle/wrapper/gradle-wrapper.properties,把distributionUrl替换成对应版本的Gradle分发地址,比如https\://services.gradle.org/distributions/gradle-7.5-all.zip。检查并更新第三方依赖
不少旧版本的Flutter插件或Android库还在使用弃用的registerResGeneratingTask方法。你可以在终端运行flutter pub outdated命令,查看哪些依赖有可用更新,逐一升级到最新版本,特别是那些涉及资源生成的插件。手动替换弃用方法(针对自定义/本地依赖)
如果你自己开发了Flutter插件或者用了本地Android库,找到调用registerResGeneratingTask的代码段,替换成新的registerGeneratedResFolders(FileCollection)方法。举个例子:
原来的代码:android.applicationVariants.all { variant -> variant.registerResGeneratingTask(yourResourceTask) }修改后:
android.applicationVariants.all { variant -> variant.registerGeneratedResFolders(files(yourResourceTask.outputDir)) }
完成以上操作后,记得先运行flutter clean清理项目缓存,再重新编译启动应用,重复的弃用提示应该就消失了。另外提一句,这个警告本身一般不会影响应用正常运行,但升级后能避免后续可能出现的兼容性问题哦。
内容的提问来源于stack exchange,提问作者Isham Mahajan

