在XML中声明AdView

时间:2014-08-17 06:22:39

标签: java android admob

我很难在我的应用程序中添加一些广告,并且我系统地面临错误消息,即缺少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文件有什么问题?

3 个答案:

答案 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"/>