无法显示 AdMob 横幅
Unable to display AdMob Banner
我正在尝试使用 AdMob 在屏幕底部展示广告。
我在 build.gradle 文件中添加了以下行以获取 AdMob SDK:
compile 'com.google.android.gms:play-services-ads:8.4.0'
之后,我在 XML 中添加了 AdView 来展示广告:
<com.google.android.gms.ads.AdView
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
app:adSize="BANNER"
android:layout_gravity="bottom"
app:adUnitId="@string/banner_ad_unit_id" />
现在我使用 ad_view ID 引用 AdView 并构建 AdRequest 以使用以下代码行请求广告:
AdView mAdView = (AdView) findViewById(R.id.ad_view);
final AdRequest adRequest = new AdRequest.Builder()
// .addTestDevice("38C0F116926519A0CBAF1094898921FB")
.build();
if (mAdView != null)
mAdView.loadAd(adRequest);
如果我取消对 addTestDevice
功能的注释,一切都会完美,但是当我尝试显示真实广告时,我在 logcat 中收到以下错误:
12-23 17:18:02.234 13226-13226/com.abc.xyz I/Ads: Starting ad request.
12-23 17:18:02.234 13226-13226/com.abc.xyz I/Ads: Use AdRequest.Builder.addTestDevice("38C0F116926519A0CBAF1094898921FB") to get test ads on this device.
12-23 17:18:02.554 13226-13226/com.abc.xyz I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@42dd86b8 time:83516183
12-23 17:18:05.694 13226-13226/com.abc.xyz D/EgretLoader: EgretLoader(Context context)
12-23 17:18:05.694 13226-13226/com.abc.xyz D/EgretLoader: The context is not activity
12-23 17:18:05.764 13226-13226/com.abc.xyz I/Ads: Ad finished loading.
12-23 17:18:05.824 13226-13226/com.abc.xyz E/Ads: JS: Uncaught ReferenceError: AFMA_ReceiveMessage is not defined (:1)
12-23 17:18:05.824 13226-13226/com.abc.xyz I/chromium: [INFO:CONSOLE(1)] "Uncaught ReferenceError: AFMA_ReceiveMessage is not defined", source: (1)
搜索问题后,我尝试了以下链接中的解决方案,但 none 对我有用。
Uncaught ReferenceError: AFMA_getSdkConstants is not defined
请告诉我我做错了什么或遗漏了什么。谢谢。
我检查了你的代码是正确的,有时你必须做两件事:
1- 等待检查,记住您几分钟前刚刚添加了广告。
2- 在真实设备中尝试,记住你在模拟器中没有像 play store servies 一样的东西。
就连我也面临着类似的问题。在我的案例中,将 AdView xml 内容从 activity_main.xml 移动到 content_main.xml 解决了问题。
我正在尝试使用 AdMob 在屏幕底部展示广告。
我在 build.gradle 文件中添加了以下行以获取 AdMob SDK:
compile 'com.google.android.gms:play-services-ads:8.4.0'
之后,我在 XML 中添加了 AdView 来展示广告:
<com.google.android.gms.ads.AdView
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
app:adSize="BANNER"
android:layout_gravity="bottom"
app:adUnitId="@string/banner_ad_unit_id" />
现在我使用 ad_view ID 引用 AdView 并构建 AdRequest 以使用以下代码行请求广告:
AdView mAdView = (AdView) findViewById(R.id.ad_view);
final AdRequest adRequest = new AdRequest.Builder()
// .addTestDevice("38C0F116926519A0CBAF1094898921FB")
.build();
if (mAdView != null)
mAdView.loadAd(adRequest);
如果我取消对 addTestDevice
功能的注释,一切都会完美,但是当我尝试显示真实广告时,我在 logcat 中收到以下错误:
12-23 17:18:02.234 13226-13226/com.abc.xyz I/Ads: Starting ad request.
12-23 17:18:02.234 13226-13226/com.abc.xyz I/Ads: Use AdRequest.Builder.addTestDevice("38C0F116926519A0CBAF1094898921FB") to get test ads on this device.
12-23 17:18:02.554 13226-13226/com.abc.xyz I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@42dd86b8 time:83516183
12-23 17:18:05.694 13226-13226/com.abc.xyz D/EgretLoader: EgretLoader(Context context)
12-23 17:18:05.694 13226-13226/com.abc.xyz D/EgretLoader: The context is not activity
12-23 17:18:05.764 13226-13226/com.abc.xyz I/Ads: Ad finished loading.
12-23 17:18:05.824 13226-13226/com.abc.xyz E/Ads: JS: Uncaught ReferenceError: AFMA_ReceiveMessage is not defined (:1)
12-23 17:18:05.824 13226-13226/com.abc.xyz I/chromium: [INFO:CONSOLE(1)] "Uncaught ReferenceError: AFMA_ReceiveMessage is not defined", source: (1)
搜索问题后,我尝试了以下链接中的解决方案,但 none 对我有用。
Uncaught ReferenceError: AFMA_getSdkConstants is not defined
请告诉我我做错了什么或遗漏了什么。谢谢。
我检查了你的代码是正确的,有时你必须做两件事:
1- 等待检查,记住您几分钟前刚刚添加了广告。 2- 在真实设备中尝试,记住你在模拟器中没有像 play store servies 一样的东西。
就连我也面临着类似的问题。在我的案例中,将 AdView xml 内容从 activity_main.xml 移动到 content_main.xml 解决了问题。