我正在尝试加载Admob原生广告。之前(在应用更新之前)广告过去曾经展示但现在却没有展示。我已经发布了代码,xml和下面的Logcat。
代码
NativeExpressAdView adView = (NativeExpressAdView) myView.findViewById(R.id.adView);
AdRequest request = new AdRequest.Builder()
.addTestDevice("5BCFF0AAE83AF424648A954038C71DE6")
.addTestDevice("A5E3E2068BD88202CBC281AD76984BEE")//infocus
.build();
adView.loadAd(request);
XML
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
ads:adSize="320x150"
ads:adUnitId="ca-app-pub-5059726881726792/6223900262"></com.google.android.gms.ads.NativeExpressAdView>
logcat的
07-14 20:39:57.349 11508-11508/? W/Ads: Failed to load ad: 0
07-14 20:40:07.373 11508-11663/? W/Ads: There was a problem getting an ad response. ErrorCode: 0
Fail to forward ad response.
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:511)
at com.google.android.gms.ads.internal.request.ab.a(:com.google.android.gms:93)
at com.google.android.gms.ads.internal.request.service.i.run(:com.google.android.gms:638)
at com.google.android.gms.ads.internal.util.u.call(:com.google.android.gms:1055)
at com.google.android.gms.ads.internal.util.v.run(:com.google.android.gms:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
07-14 20:40:19.539 1975-4922/? W/Ads: Fail to forward ad response.
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:511)
at com.google.android.gms.ads.internal.request.ab.a(:com.google.android.gms:93)
at com.google.android.gms.ads.internal.request.service.i.run(:com.google.android.gms:638)
at com.google.android.gms.ads.internal.util.u.call(:com.google.android.gms:1055)
at com.google.android.gms.ads.internal.util.v.run(:com.google.android.gms:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
答案 0 :(得分:44)
您的代码没有错误。一切都很好。你只需要等一下。您的广告ID是新创建的,因此从Google服务器获取广告需要一些时间。您可以通过添加为早期应用创建的横幅/插页式广告ID来验证这一点,并且您会发现它们有效。所以给它一些时间,它会尽快工作。至少对我来说,它总是发生。不能肯定地为你说,但为什么不尝试一下呢?
答案 1 :(得分:15)
在我的情况下,缺少付款信息是一个问题。当您登录Admob信息中心时,您会看到那里的通知,在我们添加付款详细信息之前,广告将无效。
答案 2 :(得分:4)
所以我遇到了同样的错误,我已经尝试了这里列出的所有内容。
正在等待Google向我发送一封电子邮件,告知我AdMob处于活动状态。完成后,大约花了一个小时,实际上,如果您登录后会看到状态,那么我等待了48个小时,仍然是同样的问题
付款设置对我来说不是问题,因为我以前是从关联的AdSense帐户获得付款的。
然后,我阅读了此处其他用户遇到的所有可能的常见设置问题。我主要使用示例Admob应用ID
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
以及在Admob getting started page上给出的示例广告单元ID ,这样就可以消除开发过程中帐户的问题。
build.gradle
,将他们所得到的与之匹配,只是更新并添加了依存关系。然后我找到了它,当我去targetSdkVersion 30
和compileSdkVersion 30
时就出现了错误。所以,目前,我使用的是SDK 29,直到他们解决此问题为止。我希望有人觉得这有用答案 3 :(得分:3)
常数:0
此错误通常发生在新创建的广告中。因此,请等待几个小时以加载广告。
答案 4 :(得分:2)
我也发现错误&#34;无法加载广告0&#34;但是没有问题,等待有时像一小时或者2小时甚至5小时,等待你获得广告。
答案 5 :(得分:2)
从Documentation,错误代码0表示内部错误。
public static final int ERROR_CODE_INTERNAL_ERROR
内部发生了一些事情;例如,无效的回复是 从广告服务器收到。
常数值:0
此错误通常发生在新创建的广告中。因此,请等待几个小时才能加载广告。
答案 6 :(得分:2)
在尝试从其他类型的展示位置请求广告时也会发生这种情况。 例如,来自插页式广告的横幅广告等等。希望对您有所帮助。
答案 7 :(得分:1)
您可以随时在模拟器上运行项目,并在应用程序中获得有关“模拟广告”的信息
答案 8 :(得分:1)
与sample ad unit Ids一起使用时,您的帐户可能尚未被批准。您刚刚创建了它吗?
测试广告立即对我有效。我不得不等待几个小时才能收到“好消息-您的帐户现在已获批准”邮件,直到我广告也能正常工作。无论如何,请勿使用自己的广告来进行开发-您可以为此屏蔽您的AdMob帐户!
因此,一旦测试广告开始运作,并且您确认用于发布版本的ID正确,您很可能已经做好了所有事情,只是需要等待
还有一个test App ID "ca-app-pub-3940256099942544~3347511713",但创建完我的应用程序ID后就没问题。
答案 9 :(得分:1)
就我而言,我之前已经为广告启用了调试日志记录,这具有讽刺意味的是,导致它们无法正常工作...
转到设备的设置> Google>广告> 启用广告的调试日志记录(禁用)
如果您选择顶部的重置广告ID ,它也可以提供帮助。
此测试结束后,广告将重新开始工作。
祝你好运!
答案 10 :(得分:1)
我在模拟器API 30上遇到了这个问题。我不知道为什么。
答案 11 :(得分:0)
最重要的是,不要忘记检查清单中是否已授予互联网许可
uses-permission android:name="android.permission.INTERNET"/>
答案 12 :(得分:0)
我的互联网连接很差,我不得不等待一段时间才能加载视频广告。
答案 13 :(得分:0)
就我而言,我用来测试的安卓手机是中国手机,没有安装谷歌服务,有时在使用谷歌服务时会出现问题。我必须手动卸载并重新安装它。它解决了问题。
答案 14 :(得分:0)
由于AVD设置,我遇到了这个问题。 尝试更改AVD进行调试或尝试使用真实设备。
答案 15 :(得分:0)
我知道这个问题来自4年前,但是我偶然发现了这个错误,因为我有相同的错误代码。我的问题是由清单文件中使用我自己的应用程序ID而不是测试应用程序ID引起的。将其更改为test-app id后,我得到了错误代码2。这是因为在我的环境中没有正确配置DNS。因此,遇到同样问题的任何人,请确保您使用的是正确的应用程序ID,并且已配置DNS(按照此链接进行设置-Android emulator not able to access the internet)
答案 16 :(得分:-1)
在应用程序模块目录中打开build.gradle
文件:
并添加此依赖项
dependencies {
......
......
implementation 'com.google.android.gms:play-services-ads:19.2.0'
}
答案 17 :(得分:-1)
我的两分钱:当您没有可用的互联网连接时,也会发生此错误。