我在我的应用程序中使用admob,它运行正常但突然停止显示广告。 贝娄是我用过的代码:
mainActivity.xml:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
MainActivity.java
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
AndroidManifest:
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<!--Include the AdActivity configChanges and theme. -->
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
我按照adMob网站上的所有说明进行操作,因为我说它几天前工作了。
Bellow是logcat的几行,可能与我的问题有关:
09-25 22:44:50.292: E/dalvikvm(18554): Could not find class 'android.app.AppOpsManager', referenced from method com.google.android.gms.common.GooglePlayServicesUtil.zza
09-25 22:45:07.209: E/Ads(18554): JS: Uncaught ReferenceError: renderAd is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 22:45:07.209: E/Web Console(18554): Uncaught ReferenceError: renderAd is not defined:1
09-25 22:45:07.209: E/Ads(18554): JS: Uncaught ReferenceError: onLoad is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 22:45:07.209: E/Web Console(18554): Uncaught ReferenceError: onLoad is not defined:1
我反复收到轰鸣声警告,当我点击广告应该显示的空白区域时,它会显得更多
09-25 22:46:10.911: W/PicturePileLayerContent(18554): Warning: painting PicturePile without content!
这是使用&#34;广告&#34;
过滤的logcat09-25 23:39:25.948: I/Ads(28874): Starting ad request.
09-25 23:39:25.948: I/Ads(28874): Use AdRequest.Builder.addTestDevice("8FCD71CAAE776558876AAA9BA964245A") to get test ads on this device.
09-25 23:39:26.919: I/Ads(22050): App index is not enabled
09-25 23:39:30.432: E/Ads(28874): JS: Uncaught ReferenceError: renderAd is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 23:39:30.442: E/Ads(28874): JS: Uncaught ReferenceError: onLoad is not defined (https://googleads.g.doubleclick.net/mads/gma:1)
09-25 23:39:30.442: I/Ads(28874): Scheduling ad refresh 60000 milliseconds from now.
09-25 23:39:30.472: I/Ads(28874): Ad finished loading.
我到处寻找解决方案,并且看了一些相似但不帮助我的人。
答案 0 :(得分:14)
使用以下代码行
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest request = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR) // All emulators
.addTestDevice("AC98C820A50B4AD8A2106EDE96FB87D4") // My Galaxy Nexus test phone
.build();
mAdView.loadAd(request );
而不是使用此
AdRequest adRequest = new AdRequest.Builder().build();
因为当您的应用程序准备好在Google Play商店发布时,系统会使用此行。
您可以将设备的ID替换为“AC98C820A50B4AD8A2106EDE96FB87D4”。用于获取设备ID的代码:
String android_id = Settings.Secure.getString(getContext().getContentResolver(),
Settings.Secure.ANDROID_ID);
请仔细阅读:
https://developers.google.com/admob/android/targeting#test_ads
https://developers.google.com/admob/android/quick-start
请参阅
答案 1 :(得分:8)
通过手动卸载应用程序并重新安装而不进行任何更改来解决此问题!!
答案 2 :(得分:2)
检查您是否拥有最新版本的adMob和GooglePlayServices lib。
答案 3 :(得分:1)
将横幅放在LinearLayout中就像这样,我面临同样的问题,我通过将其置于线性布局来修复它
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:id="@+id/linearLayout">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-8056472942589154/2652831823"
android:layout_alignBottom="@+id/saida"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</LinearLayout>
答案 4 :(得分:1)
在我的情况下,广告没有出现,直到我给它足够的空间。
之前
<LinearLayout
android:orientation="vertical"
android:background="@color/primary"
android:layout_width="match_parent"
android:layout_height="90dip">
<ImageView
android:onClick="goBack"
android:clickable="true"
android:src="@drawable/ic_arrow_back_white_48dp"
android:layout_width="50dip"
android:layout_height="50dip"/>
<com.google.android.gms.ads.AdView
android:layout_gravity="center_horizontal"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="@string/dwn_bnr_ad"/>
此处的adview具有wrap_content的高度,因此它会调整自身以达到其高度,但其父级(LinearLayout)的严格高度为90dip,这不允许adView占用足够的空间来展示广告。
所以我所做的只是将LinearLayout的高度更改为wrap_content然后事情变好了
答案 5 :(得分:0)
您是否回到了您的admob帐户,为广告注册了您的特定应用,并通过“ca-app-pub”获得了更长的发布商号码&#39;前言而不是&#39; pub - &#39;前言
&#34;横幅广告1&#34;关于Google Admob&#34; Google移动广告SDK&#34;的说明开发网站是否提到必须返回到您的admob帐户才能执行此操作。
这个愚蠢的错误让我忍受了好几天。
答案 6 :(得分:0)
就我而言,我在项目级buildscript
的{{1}}部分下面有以下代码
确保build.gradle
位于maven {url "https://maven.google.com"}
:
allProjects > repositories
答案 7 :(得分:0)
确保已在Admob帐户中添加
Banner Ad Unit
并在显示横幅广告的应用的adUnitId中使用横幅appUnit-id
。