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

添加in_app_purchase依赖后google_mobile_ads报MissingPluginException如何解决

冲突根因

该问题由in_app_purchase和google_mobile_ads依赖的Play服务/原生核心库版本不兼容导致,添加新依赖后旧版本的广告插件原生实现被覆盖,无法完成方法通道注册,因此抛出MissingPluginException。常规的清理重启无法解决版本不匹配问题。

解决方案

1. 锁定插件兼容版本

首先在pubspec.yaml中固定两个插件的兼容版本,禁止使用^开头的浮动版本号,推荐经过验证的无冲突版本组合:

dependencies:
  google_mobile_ads: 2.3.0
  in_app_purchase: 3.1.5

2. Android端配置调整

  • 打开项目android/build.gradle文件,在buildscript -> ext代码块下添加版本锁定配置:
buildscript {
    ext {
        // 原有配置(如flutter.minSdkVersion等)保留
        kotlin_version = '1.7.10'
        playServicesAdsVersion = "21.4.0"
        billingClientVersion = "5.1.0"
    }
}
  • 打开android/app/build.gradle文件,在defaultConfig代码块中开启多DEX支持:
defaultConfig {
    // 原有配置保留
    multiDexEnabled true
    minSdkVersion 19 // 若原有minSdk低于19需调整到19及以上
}
  • 在同文件的dependencies代码块中添加多DEX依赖:
dependencies {
    // 原有配置保留
    implementation "androidx.multidex:multidex:2.0.1"
}

3. iOS端配置调整

  • 打开项目ios/Podfile,在文件最顶部添加版本锁定规则:
pod 'Google-Mobile-Ads-SDK', '~> 10.7.0'
pod 'PurchasesHybridCommon', '~> 4.4.0'
  • 终端进入ios目录,依次执行以下命令重新安装原生依赖:
pod deintegrate
pod install --repo-update

4. 重新编译运行

执行flutter pub get后直接启动项目即可,无需额外清理操作。

内容的提问来源于stack exchange,提问作者Исфан Джамалутдинов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 02:03:03