为什么 AdMob 没有出现在 Xamarin Forms 中

Why AdMob doesn't appear in Xamarin Forms

我正在尝试在我的 Xamarin Form 应用程序中实施 AdMob。我正在关注 AdMob In Xamarin Forms 以实施 AdMob 广告。但是,广告似乎没有出现。在输出中,我得到以下输出,显示某些内容不起作用。

我在我的 Android 项目中添加了以下两个包。

Xamarin.GooglePlayServices.Ad

Xamarin.Firebase.Ads

02-29 23:23:58.145 W/mpanyname.dest( 5974): JNI RegisterNativeMethods: attempt to register 0 native methods for crc64b6d8dc29f1e2b389.AdMobViewRenderer 
02-29 23:23:58.216 D/DynamitePackage( 5974): Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl 
02-29 23:23:58.232 I/Ads     ( 5974): This request is sent from a test device. 
02-29 23:23:58.294 I/mpanyname.dest( 5974): The ClassLoaderContext is a special shared library. 
02-29 23:23:58.366 I/DynamiteModule( 5974): Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:21200 
02-29 23:23:58.366 I/DynamiteModule( 5974): Selected remote version of com.google.android.gms.ads.dynamite, version >= 21200 
02-29 23:23:58.545 I/mpanyname.dest( 5974): Background concurrent copying GC freed 8964(1124KB) AllocSpace objects, 7(356KB) LOS objects, 49% free, 3MB/7MB, paused 1.763ms total 203.190ms 
02-29 23:23:58.765 E/FA      ( 5974): GoogleService failed to initialize, status: 10, Missing google app id value from from string resources with name google_app_id.

我不知道为什么它没有显示,但我猜根据输出可能有一些错误。

删除 Xamarin.Firebase.Ads 后的输出,因为我只想 Google 播放服务广告。

03-03 14:27:45.967 D/DynamitePackage(16402): Instantiating com.google.android.gms.ads.ChimeraAdManagerCreatorImpl
03-03 14:27:45.985 I/Ads     (16402): This request is sent from a test device.
03-03 14:27:46.227 I/DynamiteModule(16402): Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:21200
03-03 14:27:46.228 I/DynamiteModule(16402): Selected remote version of com.google.android.gms.ads.dynamite, version >= 21200
03-03 14:27:46.263 I/mpanyname.dest(16402): The ClassLoaderContext is a special shared library.
03-03 14:27:46.354 W/Ads     (16402): Invoke Firebase method getInstance error.
03-03 14:27:46.355 W/Ads     (16402): The Google Mobile Ads SDK will not integrate with Firebase. Admob/Firebase integration requires the latest Firebase SDK jar, but Firebase SDK is either missing or out of date
03-03 14:27:46.738 W/mpanyname.dest(16402): Accessing hidden field Ljava/nio/Buffer;->address:J (light greylist, reflection)

由于您使用的是 firebase,因此您需要使用 Firebase 注册您的应用程序,如下所示:

https://firebase.google.com/docs/android/setup

注册后下载 "google-services.json" 文件并将其添加到您的 android 应用程序根目录。然后右键单击 google-services.json 并将构建顺序设置为该文件。构建您的解决方案并进行测试。

通过这些步骤解决了我的问题。

  1. 删除了 Xamarin.GooglePlayServices.Ad 和 Xamarin.Firebase.Ads 软件包
  2. 添加了精简版 Xamarin.GooglePlayServices.Ads.Lite
  3. 添加了在 Admob Test Ads
  4. 中找到的测试单元 ID
  5. 在 Adnroid 清单中为应用程序 ID 添加了 true 而不是应用程序 ID

编辑 5. 您需要确保您已经在admob 中创建了您的帐户并获得批准。这意味着您必须添加您的帐户详细信息和银行信息(而不是付款方式),然后您会收到一封来自 admob 的批准电子邮件,表明您的广告可以展示,他们还会向您发送有关如何整合您的广告的指南,这些步骤正是在我的回答。