アプリを起動すると、「必要な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サービスライブラリを使用します。
ここに奇妙な答えがあります。 Eclipseを再起動したところ、機能し始めました。これはいくつかの助けになるかもしれません。
Eclipseを再起動するか、Android studio
次のように宣言を変更してみてください。
<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);
同じ問題があり、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>
同じ問題があります。
私のためのソリューション:
xmlns:ads=""
に変更されました
xmlns:ads="http://schemas.Android.com/apk/res-auto"
名前空間uriを変更することで修正された問題
から
xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
に
xmlns:ads="http://schemas.Android.com/apk/res-auto"
アプリをきれいにするだけです!
ビルド->プロジェクトのクリーン
メッセージが消えます。
以下のように変更します..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
これは、EclipseがxmlをGoogle Playライブラリと同期できなかった場合に発生します。プロジェクトをクリーニングして、Eclipseを再起動してください。
私は同じエラーに直面しました。固定された答えでは修正できませんでした。このように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のビデオ を見ることができます。
これを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"
それは私の問題を解決します、私はそれがあなたの問題を解決することを願っています:)
[〜#〜] cannot [〜#〜] use wrap_content
をサイズとして使用するため、代わりにサイズを指定する必要があります。広告が機能していなかったため、グーグルで1日過ごした後、
Android:layout_height="wrap_content"
に
Android:layout_height="100dp"
そしてそれは問題を修正しました。追伸"match_parent"
は動作します(幅に合わせて設定しています)
<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" />
<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" />
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);
そして、それが私のケースでこの問題を修正した方法です。
それが役に立てば幸い。