我的应用程序正在使用android 4.2并在几天前使用Admob x.x.x.jar文件。 我刚刚配置了android sdk 4.4,我注意到谷歌播放广告不再有效,也发现它应该升级,所以我做了以下内容:
在我的XML之前:
<com.google.android.gms.ads.AdView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center"
ads:adSize="BANNER"
ads:adUnitId="asdadadasddas"
/>
今天我更新了
<com.google.android.gms.ads.AdView android:id="@+id/adView"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="asdadadasddas"
ads:adSize="BANNER"
/>
我的清单
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
values =&gt; Integer.xml
<integer name="google_play_services_version">5089034</integer>
它给了我以下错误
注意:我没有使用任何java代码来显示它是否必要?
任何帮助将不胜感激。
答案 0 :(得分:1)
我很欣赏所有开发人员的答案,实际上我通过结合所有答案解决了这个问题,所以我想在这里输入可能有助于其他人的步骤。
XML布局:
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="ca-app-pub-***"
ads:adSize="BANNER"
/>
我的代码中有两个错误: 1)xmlns:广告价值错误&amp;这个错误由 donfuxx 指出 2)我使用的是以下格式的旧AdUnitId:a15220c7a5f3775,但在最新的AdMob中,其格式与上例中使用的格式完全不同。
注意:强> 如果您使用旧的“广告:adUnitId”,则会显示空白广告,我就是这种情况。
<强> Javacode 强> 还需要Java代码
AdRequest adRequest = new AdRequest.Builder()
.build();
AdView adView = (AdView) view.findViewById(R.id.adView);
adView.loadAd(adRequest);
然后我又发现了另一个错误: 虽然我在我的应用程序中导入了Google Play项目,但找不到类。 然后我发现了一篇文章,其中提到了在你的“libs”文件夹中复制Google Play Jar,它会自动包含在你的Android私有库中以解决这个问题。
最终问题 无需在应用程序内部的integer.xml中放置值,因为当您在应用程序中包含Google Play服务项目时,它将自动从您的清单文件中选择版本值。
因此,这些是我在迁移adMob时遇到的问题,并将帮助其他人快速实施。
答案 1 :(得分:0)
您不应再在布局中设置adUnitId / adSize。而是做:
adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(AD_UNIT_ID);
布局:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
最后,
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("XXXXXXXXXXXXXXXXXXXX")
.build();
adView.loadAd(adRequest);
答案 2 :(得分:0)
您仍然可以使用ads:adSize
xml属性!
但是,您的xml命名空间设置在adview元素中是错误的,因为它引用了传统的admob:
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
但由于您已经使用了google play admob,因此您应该使用:
xmlns:ads="http://schemas.android.com/apk/res-auto"
这就是无法识别ads:
属性的原因。
更多信息请参阅official admob migration guide。