这是我的第一个Android应用程序,我试图使用admob广告为我的应用程序,但它是不工作,尽管我所做的一切。
这是我活动中与广告相关的代码
protected void onCreate(Bundle savedInstanceState) {
........
LinearLayout rootLayout = (LinearLayout) findViewById(R.id.ForViewAd);
AdView adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
//i've gotten the test ad id by first setting this as 'abc'
//and then reading off the logcat
adView.setAdUnitId("XXXXXXXXX");
rootLayout.addView(adView, 0);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("XXXXXXXXXX")
.build();
adView.loadAd(adRequest);
下面是我的XML代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
.......
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:orientation="horizontal" >
<com.google.ads.AdView
android:id="@+id/ForViewAd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
</RelativeLayout>
在模拟器上运行应用程序时的logcat读数既奇怪又令人困惑
09-28 15:28:21.076: E/Trace(968): error opening trace file: No such file or directory (2)
09-28 15:28:21.120: W/GooglePlayServicesUtil(968): Google Play services is missing.
09-28 15:28:21.140: I/Ads(968): Starting ad request.
09-28 15:28:21.140: I/Ads(968):
Use AdRequest.Builder.addTestDevice ("XXXXXXXXX") to get test ads on this device.
09-28 15:28:21.200: D/dalvikvm(968): DexOpt: --- BEGIN 'ads326198251.jar' (bootstrap=0) ---
09-28 15:28:21.216: D/dalvikvm(968): GC_CONCURRENT freed 155K, 3% free 10994K/11271K, paused 19ms+11ms, total 36ms
09-28 15:28:21.324: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp.
09-28 15:28:21.340: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp.
09-28 15:28:21.356: D/libEGL(968): loaded /system/lib/egl/libEGL_emulation.so
09-28 15:28:21.372: D/(968): HostConnection::get() New Host Connection established 0xb975ff68, tid 968
09-28 15:28:21.380: D/libEGL(968): loaded /system/lib/egl/libGLESv1_CM_emulation.so
09-28 15:28:21.380: D/libEGL(968): loaded /system/lib/egl/libGLESv2_emulation.so
09-28 15:28:21.432: W/EGL_emulation(968): eglSurfaceAttrib not implemented
09-28 15:28:21.448: D/OpenGLRenderer(968): Enabling debug mode 0
09-28 15:28:21.476: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb95468e0): name, size, mSize = 1, 1048576, 1048576
09-28 15:28:21.532: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb953e248): name, size, mSize = 2, 9216, 1057792
09-28 15:28:21.572: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb954fcb8): name, size, mSize = 4, 36864, 1094656
09-28 15:28:21.576: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb976f528): name, size, mSize = 5, 16384, 1111040
09-28 15:28:21.576: D/dalvikvm(968): DexOpt: --- END 'ads326198251.jar' (success) ---
09-28 15:28:21.576: D/dalvikvm(968): DEX prep '/data/data/com.example.testapp/cache/ads326198251.jar': unzip in 0ms, rewrite 375ms
09-28 15:28:21.704: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb954edf8): name, size, mSize = 8, 16384, 1127424
09-28 15:28:21.704: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb955e380): name, size, mSize = 9, 4096, 1131520
09-28 15:28:21.776: D/dalvikvm(968): GC_CONCURRENT freed 214K, 4% free 11181K/11527K, paused 14ms+1ms, total 22ms
09-28 15:28:21.780: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp.
09-28 15:28:21.788: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp.
09-28 15:28:22.040: W/Ads(968): Invalid unknown request error: [Cannot determine request type. Is your ad unit id correct?]
09-28 15:28:22.048: W/Ads(968): There was a problem getting an ad response. ErrorCode: 1
09-28 15:28:22.060: W/Ads(968): Failed to load ad: 1
09-28 15:38:01.600: D/dalvikvm(968): GC_CONCURRENT freed 398K, 5% free 11181K/11719K, paused 10ms+1ms, total 18ms
09-28 15:38:01.604: D/webviewglue(968): nativeDestroy view: 0xb97947e8
09-28 15:38:01.608: D/webviewglue(968): nativeDestroy view: 0xb97da500
如您所见,logcat中至少显示了3个错误。首先,google play服务已经导入到项目中。我可以在android私有库文件夹中看到它(但不是在libs文件夹中)。
还有一个错误是没有足够的空间,但我已经将relativelayout的左右填充设置为0sp。所以在宽度上应该有足够的空间?
最后,是错误代码1,还是“无效未知请求错误”?我不明白那个。
除了logcat和广告没有显示在活动的任何地方,应用程序运行正常没有问题。
有人能告诉我我做错了什么吗?
以下是建议后的日志
09-29 17:31:47.290: D/jdwp(1025): Got wake-up signal, bailing out of select
09-29 17:31:47.290: D/dalvikvm(1025): Debugger has detached; object registry had 1 entries
09-29 17:31:47.302: W/GooglePlayServicesUtil(968): Google Play services is missing.
09-29 17:31:47.302: I/AndroidRuntime(1025): NOTE: attach of thread 'Binder_3' failed
09-29 17:31:47.318: I/Ads(968): Starting ad request.
09-29 17:31:47.318: I/Ads(968): Use AdRequest.Builder.addTestDevice("XXXXXX") to get test ads on this device.
09-29 17:31:47.418: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp.
09-29 17:31:47.422: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp.
09-29 17:31:47.446: W/EGL_emulation(968): eglSurfaceAttrib not implemented
09-29 17:31:47.454: D/OpenGLRenderer(968): TextureCache::get: create texture(0xb820e8e0): name, size, mSize = 38, 1048576, 1131520
09-29 17:31:47.526: I/ActivityManager(324): Displayed com.example.testapp/com.example.testapp.MainActivity: +249ms
09-29 17:31:47.530: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x519 dp.
09-29 17:31:47.530: W/Ads(968): Not enough space to show ad. Needs 360x50 dp, but only has 340x499 dp.
09-29 17:31:47.606: W/Ads(968): Invalid unknown request error: [Cannot determine request type. Is your ad unit id correct?]
09-29 17:31:47.610: W/Ads(968): There was a problem getting an ad response. ErrorCode: 1
09-29 17:31:47.610: W/Ads(968): Failed to load ad: 1
09-29 17:31:47.622: D/dalvikvm(968): GC_CONCURRENT freed 256K, 4% free 11580K/11975K, paused 1ms+1ms, total 15ms
09-29 17:31:47.622: D/webviewglue(968): nativeDestroy view: 0xb85bfb60
除了@Ranjith的回答之外,由于您正在通过google play服务使用admob,您应该修改您的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
.......
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:orientation="horizontal" >
您可以按照从旧admob迁移到新admob的官方指南进行操作
顺便说一下,以后不要在互联网上发布正确的成人ID。我把它遮住了
您没有正确添加testdevice id,我在日志中找到了您的设备id并更新了代码。
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("5C2521D171291728A381823D5ACC9B8D")
.build();
adView.loadAd(adRequest);
接下来,在您的布局文件中,只要下面的就足够了,因为您的java代码正在设置adunitid、testdeviceid和adsize。您可以将其放入java代码或布局文件中。
<com.google.ads.AdView
android:id="@+id/ForViewAd"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
包括谷歌的官方页面以获取更多信息https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start
smart_横幅存在问题//没有足够的空间显示广告。需要360x50 dp
横幅广告效果很好,
我解决这个问题就像...从布局中删除广告,放入根布局,删除根布局的边距
<RelativeLayout>
<LinearLayout>
</LinearLayout>
<layout>
</layout>
//here
<com.google.android.gms.ads.AdView />
</RelativeLayout>
我已经在我的手机上测试了广告功能。只显示测试广告。当我用我从AdMob得到的单位id替换时,真正的广告就不显示了。 问题出在哪里? 下面是我的代码: 对于我使用的xml 用于加载我使用的ad 在manifeast我有 ...。 但我的广告不加载在android设备上。测试广告运作良好。所有这些操作我都用了一个真实的装置。有什么需要帮忙的吗?
您好,我正在尝试将admob广告添加到已经使用swift上传到appstore的应用程序中。我在admob中制作了一个应用程序,复制了appid和ads ID,并显示了各自的横幅和间隙广告。这里的问题是,当我写这行时 测试广告完美地显示和工作,但当我评论这一行时,控制台中会显示以下错误。 请求错误:没有要显示的广告。 此消息以GADBannerViewDelegate的重载方法打印 请帮我解决这个
我已经与Admob广告斗争了将近一周,我在互联网上搜索了所有可能的解决方案,但都没有奏效。我的Android应用程序不显示测试广告也不显示实时广告。这是日志: 我的测试间隙负载没有问题,带电的没有。横幅没有显示,测试的和带电的都没有显示。 这是我的xml AdView: 我在横幅上加了: 活动间隙是以这种方式加载的,它是有效的(测试一没有): 我尝试过的事情 > 使用 使用Firebase广告编译
我知道这个问题已经被问了好几次,但即使我已经实施并尝试了所有解决方案,我还是卡住了。我按照本教程展示插页式广告: https://developers.google.com/admob/unity/interstitial 我的主要目标是在用户点击游戏的“重新启动”按钮时显示广告。 下面是我的主广告管理器类(它与一个游戏对象相关联): 我在重新启动操作中调用Show方法:
我已经更新了Firebase/admob包。 插播广告正在播放,但横幅却没有。 在更新包之前,横幅广告也很好。 版本: UnitID: BannerAd: Ad加载失败日志: 日志: iOS一切都很好。 没有横幅测试广告显示的原因是什么?
它在模拟器和真实设备上显示测试广告。但是当我把广告ID改成我的真实ID时,它就不起作用了。。我的应用程序也在AppStore中,但我没有推送更新。我只在Xcode中添加了AdMob,然后连接了真正的设备并在其上进行了测试。我必须将AdMob的最新更新发布到App Store才能看到真正的广告吗?我该怎么办?在推送更新之前,我想测试一下我的真实广告。。 (已填写付款明细)