在.NET 7环境下的MAUI Android应用集成AdMob解决方案求助
.NET 7 MAUI Android集成AdMob适配方案
针对你遇到的Plugin.MauiMTAdmob仅支持.NET6的问题,分享几个可行的适配方案:
方案一:修改原插件源码适配.NET7
- 克隆插件源码到本地
- 打开解决方案,将所有项目的目标框架替换为
.NET 7(比如把net6.0-android改成net7.0-android) - 更新项目依赖的NuGet包到.NET7兼容版本,比如
Microsoft.Maui.Controls、Microsoft.Maui.Core等 - 编译项目,生成自定义NuGet包后,在你的MAUI项目中引用这个本地包
- 若编译时遇到API变更报错,对照MAUI .NET7的官方文档调整代码,替换过时方法
方案二:手动集成Google Ads Android SDK
直接跳过第三方插件,手动实现AdMob集成:
- 在项目中安装
Xamarin.GooglePlayServices.AdsNuGet包(已兼容.NET7) - 在Android项目的
AndroidManifest.xml中添加AdMob应用ID和必要权限:<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="你的AdMob应用ID"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> - 在Android平台代码中初始化MobileAds:
using Google.Ads.MobileAds; // 在MainActivity的OnCreate方法中添加 MobileAds.Initialize(this); - 按需实现Banner、插屏等广告的加载和展示逻辑,比如Banner广告:
var bannerView = new AdView(this); bannerView.AdUnitId = "你的Banner广告单元ID"; bannerView.AdSize = AdSize.Banner; // 添加到布局中 var layout = FindViewById<LinearLayout>(Resource.Id.main_layout); layout.AddView(bannerView); // 加载广告 var request = new AdRequest.Builder().Build(); bannerView.LoadAd(request);
方案三:选择已兼容.NET7的第三方插件
查找维护活跃、已适配.NET7的MAUI AdMob第三方插件,直接通过NuGet安装使用,这类插件通常会在版本说明中标注支持.NET7。
注意事项
- 测试阶段务必使用AdMob提供的测试广告ID,避免违反AdMob政策
- 针对Android 13及以上版本,若需要收集广告ID,需在Manifest中添加
android.permission.AD_ID权限 - 确保AdMob应用ID和广告单元ID配置正确,否则广告无法加载
内容的提问来源于stack exchange,提问作者Mehran
相关产品推荐
相关产品推荐

