我很难在我的应用程序中添加一些广告,并且我系统地面临错误消息,即缺少adSize参数。我的XML文件如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/Window"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".myApp">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="4sdfgsd5gs4df5g5sd"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR,4sdfgsd5gs4df5g5sd"
ads:loadAdOnCreate="true"/>
<FrameLayout
android:id="@+id/Cont"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_gravity="top" >
<LinearLayout
android:id="@+id/Controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="horizontal" >
<mypackage.utils.myapp.view1
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
</mypackage.utils.myapp.view1>
<ImageButton
android:id="@+id/Lum"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/my_drawable1"
android:text="@string/Lum">
</ImageButton>
<ImageButton
android:id="@+id/Photo"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/my_drawable2"
android:text="@string/Photo">
</ImageButton>
</LinearLayout>
</FrameLayout>
我已阅读本网站上发布的类似问题的答案,但到目前为止,没有任何事情阻止错误消息被触发。所有这些行动都没有改变:
使用xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
代替xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
`
使用xmlns:ads="xmlns:ads="http://schemas.android.com/apk/res/com.jms.AdmobExample"
代替xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
`
我可以补充一点,我的项目中没有任何“Attrs.xml”文件,但是,作为答案提醒说,对于新版本的AdMob,它不再是强制性的,这应该不是问题。
我的XML文件有什么问题?
答案 0 :(得分:1)
我不确定您的活动中有什么,但就XML而言,您应该使用:
xmlns:ads="http://schemas.android.com/apk/res-auto"
而不是:
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
您的AdView应如下所示:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="4df1657304086fd7"
ads:adSize="BANNER" />
如果这不起作用,请添加您的活动,以便我们确保您也正确输入了所有活动。此外,请确保您使用的是Google Play Services API。
修改的 将此添加到您的清单
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
答案 1 :(得分:0)
添加添加非常简单,只需按照以下步骤操作:
只需将此代码粘贴到活动中即可。
//制作广告。
private static final String AD_UNIT_ID = "****************************";
adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId(AD_UNIT_ID);
// Add the AdView to the view hierarchy. The view will have no size
// until the ad is loaded.
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
layout.addView(adView);
// Create an ad request. Check logcat output for the hashed device ID to
// get test ads on a physical device.
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("INSERT_YOUR_HASHED_DEVICE_ID_HERE")
.build();
// Start loading the ad in the background.
adView.loadAd(adRequest);
要检查的主要是: LinearLayout layout =(LinearLayout)findViewById(R.id.linearLayout);
确保您为您的活动提供了xml布局的ID。
答案 2 :(得分:0)
创建全局变量
/** The view to show the ad. */
private AdView adView;
/* Your ad unit id. Replace with your actual ad unit id. */
private static final String AD_UNIT_ID = "YOUR_UNIT_ID";
在活动的oncreate方法
// Look up the AdView as a resource and load a request.
AdView adView = (AdView) this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
在xml文件中
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="YOUR_UNIT_ID" />
androidManifest.xml文件中的权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>