为什么 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 并将构建顺序设置为该文件。构建您的解决方案并进行测试。
通过这些步骤解决了我的问题。
- 删除了 Xamarin.GooglePlayServices.Ad 和 Xamarin.Firebase.Ads 软件包
- 添加了精简版 Xamarin.GooglePlayServices.Ads.Lite
- 添加了在 Admob Test Ads
中找到的测试单元 ID
- 在 Adnroid 清单中为应用程序 ID 添加了 true 而不是应用程序 ID
编辑
5. 您需要确保您已经在admob 中创建了您的帐户并获得批准。这意味着您必须添加您的帐户详细信息和银行信息(而不是付款方式),然后您会收到一封来自 admob 的批准电子邮件,表明您的广告可以展示,他们还会向您发送有关如何整合您的广告的指南,这些步骤正是在我的回答。
我正在尝试在我的 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 并将构建顺序设置为该文件。构建您的解决方案并进行测试。
通过这些步骤解决了我的问题。
- 删除了 Xamarin.GooglePlayServices.Ad 和 Xamarin.Firebase.Ads 软件包
- 添加了精简版 Xamarin.GooglePlayServices.Ads.Lite
- 添加了在 Admob Test Ads 中找到的测试单元 ID
- 在 Adnroid 清单中为应用程序 ID 添加了 true 而不是应用程序 ID
编辑 5. 您需要确保您已经在admob 中创建了您的帐户并获得批准。这意味着您必须添加您的帐户详细信息和银行信息(而不是付款方式),然后您会收到一封来自 admob 的批准电子邮件,表明您的广告可以展示,他们还会向您发送有关如何整合您的广告的指南,这些步骤正是在我的回答。