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

Flutter项目device_info插件Android端报MissingPluginException求解决方案

Flutter Android端获取设备信息报MissingPluginException的解决方案

看到你遇到的这个问题——iOS端正常运行但Android端抛出MissingPluginException,而且已经试过flutter clean、重装应用和切换Flutter通道都没解决,我来给你几个针对性的方案:

1. 优先升级到官方推荐的替代插件

你当前使用的device_info: ^0.4.2+6是已被官方废弃的旧插件,现在官方推荐用device_info_plus替代它,旧版本和较新的Flutter稳定版(比如你用的1.20.2)大概率存在兼容性问题。

替换步骤:

  • 在pubspec.yaml里移除旧的device_info依赖,添加新依赖:
    dependencies:
      device_info_plus: ^9.0.2 # 可前往pub.dev查看最新版本号
    
  • 执行flutter pub get拉取依赖
  • 代码适配(新插件API和旧版几乎一致,改动极小):
    import 'package:device_info_plus/device_info_plus.dart';
    
    var deviceInfo = DeviceInfoPlugin();
    if (Platform.isIOS) {
      IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
    } else {
      AndroidDeviceInfo androidDeviceInfo = await deviceInfo.androidInfo;
    }
    

2. 针对旧插件的修复方案(若不想升级)

如果你暂时不想替换插件,可以尝试以下操作:

  • 手动触发Android项目的Gradle同步:打开Android Studio并导入项目的android文件夹,点击工具栏的「Sync Project with Gradle Files」按钮,确保所有依赖同步完成。
  • 彻底清理构建缓存:
    1. 执行flutter clean
    2. 进入项目的android目录,执行./gradlew clean(Windows系统用gradlew clean)
    3. 返回项目根目录,执行flutter pub get
    4. 重新运行应用
  • 检查AndroidManifest.xml配置:确保文件中没有误删基础权限(比如INTERNET,虽然获取设备信息不需要,但部分插件依赖它完成初始化流程)。

3. 检查Flutter与Android项目的版本兼容性

确认Android项目的Gradle版本和Flutter版本匹配:

  • 打开android/build.gradle,检查com.android.tools.build:gradle的版本,对于Flutter 1.20.2,推荐使用3.5.0或3.6.0版本的Gradle插件。
  • 打开android/gradle/wrapper/gradle-wrapper.properties,检查distributionUrl对应的Gradle版本,比如gradle-5.6.4-all.zip(和3.5.0插件版本匹配)。

如果以上方法都无效,可以尝试删除项目根目录下的.android文件夹(注意备份重要配置),再执行flutter pub get让Flutter重新生成Android项目文件。

内容的提问来源于stack exchange,提问作者Amani Elsaed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:42:28