web-dev-qa-db-ja.com

必須のXML属性「adSize」がありませんでした

アプリを起動すると、「必要なXML属性「adSize」が見つかりませんでした」が表示されます。これは、バナーではなくスマートフォンの画面に表示されます。

スタック上にあるさまざまなソリューション(_xmlns:ads="http://schemas.Android.com/apk/res-auto"_の代わりに_xmlns:ads="http://schemas.Android.com/apk/libs/com.google.ads"_または_xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"_の代わりに)を試しましたが、うまくいきません。

ここに私のJavaコード(バナーを実装しようとするための単純なHello World)):

_package com.example.publicite;

import Android.os.Bundle;
import Android.app.Activity;
import Android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}
_

これが私のxmlファイルです。

_<RelativeLayout 
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="@dimen/activity_vertical_margin"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="@string/hello_world" />

<com.google.Android.gms.ads.AdView
    xmlns:ads="http://schemas.Android.com/apk/libs/com.google.ads"
    Android:id="@+id/adView"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="MyAdUnitId"
    ads:loadAdOnCreate="true"
    ads:testDevices="TEST_EMULATOR" />

<Button
    Android:id="@+id/votrescore"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:text="..." />

</RelativeLayout>
_

ここに私のマニフェストがあります:

_<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.publicite"
Android:versionCode="1"
Android:versionName="1.0" >

<uses-sdk
    Android:minSdkVersion="13"
    Android:targetSdkVersion="13" />

<application
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >

    <meta-data Android:name="com.google.Android.gms.version"
               Android:value="@integer/google_play_services_version"/>

    <activity
        Android:name="com.example.publicite.MainActivity"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        Android:name="com.google.Android.gms.ads.AdActivity"
        Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
</application>

<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

 </manifest>
_

Google Playサービスライブラリを使用します。

16
Glork

ここに奇妙な答えがあります。 Eclipseを再起動したところ、機能し始めました。これはいくつかの助けになるかもしれません。

Eclipseを再起動するか、Android studio

7
zizutg

次のように宣言を変更してみてください。

<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="YOUR_AD_UNIT_ID"
    ads:adSize="BANNER"/>

----編集----

プログラムで実行することもできます。単純に、AdViewレイアウト項目の代わりに、LinearLayoutを定義し、コードで次のようなことを行います。

final AdView adView = new AdView(getActivity());
adView.setAdUnitId("YourId");
adView.setAdSize(AdSize.BANNER);

final LinearLayout adLinLay = (LinearLayout) view.findViewById(R.id.your_defined_linearlayout);
adLinLay.addView(adView);

final AdRequest.Builder adReq = new AdRequest.Builder();
final AdRequest adRequest = adReq.build();
adView.loadAd(adRequest);
30
nKn

同じ問題があり、xmlnsラベルで修正しました。 2つの "xmlns:ads"ラベル(AdViewの "res-auto"ラベルと親レイアウトの "tools"ラベル)を配置しました。 「res auto」には、FloatingActionButtonのxmlns:appとAdViewのxmlns:adsの2つのラベルを使用する必要がありました。

<RelativeLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:ads="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:fitsSystemWindows="true">

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/appbar"
        Android:layout_width="match_parent"
        Android:layout_height="@dimen/fragment_start_margin"
        Android:background="@drawable/fondo_proyectos"
        Android:elevation="4dp"
        Android:gravity="bottom"
        Android:minHeight="@dimen/toolbar_height">
    </Android.support.v7.widget.Toolbar>

    <com.google.Android.gms.ads.AdView
        xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/av_bottom_banner"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_inferior_ad_unit_id"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentBottom="true"
        Android:layout_centerHorizontal="true"
        />

    <Android.support.design.widget.CoordinatorLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_above="@+id/av_bottom_banner"
        Android:fitsSystemWindows="true">

        <Android.support.design.widget.FloatingActionButton
            xmlns:app="http://schemas.Android.com/apk/res-auto"
            Android:id="@+id/fab"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_above="@+id/av_bottom_banner"
            Android:layout_alignParentEnd="true"
            Android:layout_gravity="bottom|end"
            Android:layout_marginLeft="@dimen/fab_margin"
            Android:layout_marginRight="@dimen/fab_margin"
            Android:elevation="4dp"
            Android:src="@Android:drawable/ic_input_add"
            Android:tint="@Android:color/white"
            app:fabSize="normal"
            app:srcCompat="@drawable/ic_account_circle" />

        <include layout="@layout/proyecto_content" />

    </Android.support.design.widget.CoordinatorLayout>

</RelativeLayout>
5
joselquin

同じ問題があります。

私のためのソリューション:

 xmlns:ads=""

に変更されました

xmlns:ads="http://schemas.Android.com/apk/res-auto"
3
ketom

名前空間uriを変更することで修正された問題

から

 xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"

xmlns:ads="http://schemas.Android.com/apk/res-auto"
2
kartikag01

アプリをきれいにするだけです!

ビルド->プロジェクトのクリーン

メッセージが消えます。

1
FeelCode

以下のように変更します..remove ads:loadAdOnCreate = "true"

   <com.google.Android.gms.ads.AdView
    Android:id="@+id/adView"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="MyAdUnitId"/>

このリンクを確認してください、それは明確な例を持っています

https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#play

1
Libin

これは、EclipseがxmlをGoogle Playライブラリと同期できなかった場合に発生します。プロジェクトをクリーニングして、Eclipseを再起動してください。

1
Nino Frenn

私は同じエラーに直面しました。固定された答えでは修正できませんでした。このようにxmlを変更しました。

<com.google.Android.gms.ads.AdView
  xmlns:ads="http://schemas.Android.com/apk/res-auto"
  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 = "ca-app-pub-3940256099942544/6300978111">
</com.google.Android.gms.ads.AdView>

主な変更点:xmlns:ads="http://schemas.Android.com/apk/res-auto"およびads:adSize="BANNER"。この問題を解決しながら、ラップトップ画面を記録しました。視覚的なイラストが好きな人は、 YouTubeのビデオ を見ることができます。

0
Abanoub Hanna

これをAndroid manifestに追加:

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme">

    <meta-data
        Android:name="com.google.Android.gms.version"
        Android:value="@integer/google_play_services_version" />

    <activity
        Android:name="com.google.Android.gms.ads.AdActivity"
        Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        Android:theme="@Android:style/Theme.Translucent" />

Android:theme = "@ Android:style/Theme.Translucent"

それは私の問題を解決します、私はそれがあなたの問題を解決することを願っています:)

0
metomero

[〜#〜] cannot [〜#〜] use wrap_contentをサイズとして使用するため、代わりにサイズを指定する必要があります。広告が機能していなかったため、グーグルで1日過ごした後、

Android:layout_height="wrap_content"

Android:layout_height="100dp"

そしてそれは問題を修正しました。追伸"match_parent"は動作します(幅に合わせて設定しています)

0
Justin
<com.google.Android.gms.ads.AdView xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/adMobBanner"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111"`enter code here`
        Android:layout_centerVertical="true" />
0
Nandam Neeraj
<com.google.Android.gms.ads.AdView
    xmlns:ads="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/adView1"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    ads:adUnitId="ca-app-pub-39402560999425544/1033173712"

// YOUR UNIQUE ID ads:adSize = "BANNER" />

0
DHRUVIL BORAD

DEIVCE_ID_EMULATORも確認してください。私のコードには、Googleのチュートリアルに従って次のコードがあります。

AdRequest adRequest = new AdRequest.Builder()
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
     .build();

私の場合、実際のデバイスでテストしていたので、表示されず、広告サイズが設定されていないというメッセージが表示されました。エミュレータを実行しましたが、nknのソリューションは完全に機能します。

ここに私の完全なコードがあります:メインアクティビティで:

AdView adView = (AdView)findViewById(R.id.adView);
AdRequest adRequest = newAdRequest.Builder()
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
     .build();
adView.loadAd(adRequest);

そして私のXML:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content">

    <com.google.Android.gms.ads.AdView
        xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/adView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        ads:adUnitId="@string/UNIT_ID"
        ads:adSize="BANNER"/>
</LinearLayout>

今すぐデバイスでアプリを実行し、logcatを確認してください。I/ Ads:Use

AdRequest.Builder.addTestDevice("33BE2250B43518CCDA7DE426D04EE232")
to get test ads on this device.

このID(デバイスごとに異なる)を次のように.addTestDeviceにコピーします。

AdView adView = (AdView)findViewById(R.id.adView);
    AdRequest adRequest = newAdRequest.Builder()
         .addTestDevice("33BE2250B43518CCDA7DE426D04EE232")
         .build();
    adView.loadAd(adRequest);

そして、それが私のケースでこの問題を修正した方法です。

それが役に立てば幸い。

0
timv