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

Flutter使用nfc_manager插件启动时出现Gradle构建报错求助

Flutter nfc_manager插件构建报错排查方案

核心报错原因

  • 依赖拉取超时:老版本nfc_manager默认依赖已停止服务的jcenter仓库拉取org.ow2.asm系列依赖,网络访问超时直接导致依赖解析失败
  • 配置读取报错属于连锁问题:依赖解析失败时,Gradle没有完成nfc_manager模块的Android工程配置加载,后续读取android扩展属性时自然找不到对应对象,不是插件本身缺失Android配置。

解决步骤

  1. 调整项目全局仓库源
    打开项目路径下的android/build.gradle文件,分别找到buildscript和allprojects两个块下的repositories配置,注释掉原有jcenter()配置,补充可正常访问的maven源,参考配置如下:
    buildscript {
        ext.kotlin_version = '1.7.10' // 保留项目原有kotlin版本配置即可
        repositories {
            // 注释掉 jcenter()
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            google()
            mavenCentral()
        }
        dependencies {
            // 保留项目原有AGP、kotlin插件依赖配置即可
            classpath 'com.android.tools.build:gradle:7.2.0'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
    allprojects {
        repositories {
            // 注释掉 jcenter()
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            google()
            mavenCentral()
        }
    }
    
  2. 强制覆盖插件仓库配置(第一步操作后仍报jcenter超时的情况处理)
    老版本nfc_manager插件自身的Android构建配置写死了jcenter源,全局项目配置可能无法覆盖插件的buildscript类路径拉取逻辑,打开android/settings.gradle文件,补充全局依赖仓库强制配置:
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
        repositories {
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/public' }
            google()
            mavenCentral()
        }
    }
    
    *如果使用的Flutter版本低于3.0,没有dependencyResolutionManagement配置块,直接把上述repositories块的内容放到settings.gradle文件最外层即可。
  3. 升级插件版本(可选,优先推荐)
    3.2.0以下版本的nfc_manager对AGP7+、Gradle7+存在兼容性问题,直接执行命令升级到最新稳定版可以从根源规避大部分配置问题:
    flutter pub upgrade nfc_manager
    
  4. 清理缓存重新构建
    所有配置改完后,在项目根目录执行以下命令清理旧构建缓存,重新拉取依赖编译:
    flutter clean
    flutter pub get
    flutter run
    

注意事项

  • 不要因为Could not get unknown property 'android'报错就手动给nfc_manager插件添加Android配置块,这个错误是依赖拉取失败引发的连锁报错,依赖拉取成功后会自动消失,乱改插件配置会引入新的构建问题
  • 如果使用了系统代理,检查~/.gradle/gradle.properties文件内的代理地址、端口配置是否和系统代理一致,配置错误也会导致依赖拉取超时
  • 不要修改Pub缓存里的插件源码,后续执行flutter pub get时缓存内容会被覆盖,修改不会长期生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:24:24