web-dev-qa-db-ja.com

エラー:パッケージ 'com.google.example' main.xmlの属性 'adSize'にリソース識別子が見つかりません

Xmlでアプリに広告を追加するための指示に従うと、次のようなエラーが表示されました。

Description Resource Path Location Type
error: No resource identifier found for attribute 'adSize' in package 'com.google.example'  main.xml    /HelloWorld/res/layout  line 12 Android AAPT Problem
Description Resource Path Location Type
error: No resource identifier found for attribute 'adUnitId' in package 'com.google.example'    main.xml    /HelloWorld/res/layout  line 12 Android AAPT Problem

私はmain.xmlを編集し、attrs.xmlファイルを追加しましたが、コンパイラはそれを好みませんでした。

144
user584819

カスタムレイアウトネームスペースの/res//lib/に置き換えます。

あなたの場合xmlns:Android="http://schemas.Android.com/apk/res/Android"は、

xmlns:yourApp="http://schemas.Android.com/apk/lib/com.yourAppPackege.yourClass"

助けになれば幸いです。

298
M_AWADI

私は同じ問題を抱えていました。サンプルコードをGoogleのコードからコピーしましたが、コンパイルできませんでした。

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

最後に、私はそれを考え出しました。コードの最後の部分 "com.google.example"はそれらのパッケージ名なので、あなたはそれをあなたのプロジェクトパッケージで置き換える必要があります。

たとえば、私のプロジェクトパッケージは "com.jms.AdmobExample"なので、私のadsの命名スペースは次のようになります。

xmlns:ads="http://schemas.Android.com/apk/res/com.jms.AdmobExample"

私の例をチェックしてください、それはうまくいきます。あなたは試すためにAPKをダウンロードすることができます。私はまた私のソースコードをここに入れます: AndroidアプリケーションにGoogle Admobを追加します

75
James

私にとっては、私は追加する必要があります

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

直後の:

xmlns:Android="http://schemas.Android.com/apk/res/Android"

res/layout/main.xmlにあります。

42
Zennichimaro

あなたは http://schemas.Android.com/apk/res-auto を使うこともできます。このように使用してください。

xmlns:ads="http://schemas.Android.com/apk/res-auto"
27
Bms270

私は Android.com から同じカスタムデモをダウンロードして、同じcompie問題を得ます。

拳で、私は変わります

xmlns:custom="http://schemas.Android.com/apk/res/com.example.Android.customviews"

xmlns:custom="http://schemas.Android.com/apk/lib/com.example.Android.customviews"

それはうまくいきます。それから私は別の解決策を得る

 xmlns:custom="http://schemas.Android.com/apk/res-auto"

それも動作しますが、いくつかの違いがあります。二つ目の解決策は知能機能を持っています。私はその理由を見つけています、あなたは手を差し伸べることができますか?

8
Bill

私は同じ問題を抱えていましたが、図書館プロジェクトを使用していました。この問題はr17で解決されています:パッケージの名前空間を使う代わりに:

xmlns:app="http://schemas.Android.com/apk/res/hu.droidium.exercises"

ダミーの名前空間を使う必要があります。

xmlns:app="http://schemas.Android.com/apk/res-auto"

これにより、参照元プロジェクトから属性にアクセスできないという問題が修正されます。

LargeHeap属性に関してこのエラーを受け取りました。私のアプリケーションはEclipseの下では実行されていませんでしたが、antの下ではまだ正常にビルドされ実行されていました。

Android ドキュメント によると、

xmlns:Android

Defines the Android namespace. This attribute should always be set to "http://schemas.Android.com/apk/res/Android".

私はマニフェストでその行を消去し、Eclipseで保存し、その行を貼り付けて再度保存したところ、うまくいきました。私の場合、問題はEclipse、ant、およびadbが互いに正しく対話しておらず、保存することで何かがリセットされたことにあると思います。興味深いことに、Eclipseを再起動してもこの問題は解決されませんでした(通常、このような種類の問題ではEclipseを再起動することが最初の試みであり、通常は問題を解決します)。

3
tjb

attrs.xmlに指定したとおり、adSize属性はネームスペースcom.google.ads.AdViewに属します。変更してみてください。

Android:adUnitId="a14bd6d2c63e055"         Android:adSize="BANNER"

ads:adUnitId="a14bd6d2c63e055"         ads:adSize="BANNER"

そしてそれはうまくいくはずです。

3
P-A

この部分をあなたのレイアウトに含めたことを確認してください(xmlns:Android lineの下の一番上)。

xmlns:ads="http://schemas.Android.com/apk/res/com.google.example" 
...........blah blah..

また、res/values /にattrs.xmlが含まれているかどうかも確認してください。

詳しくはこちらをご覧ください。 http://code.google.com/mobile/ads/docs/Android/banner_xml.html

2
Kabilan

答え ここ に基づいて、xmlns:ads属性を変更する必要があると思います。たとえば、これを変更します。

<com.google.ads.AdView xmlns:ads="http://schemas.Android.com/apk/res/com.google.example .../>

これに:

<com.google.ads.AdView xmlns:ads="http://schemas.Android.com/apk/res/com.your.app.namespace" .../>

それは私のためにそれを修正しました。それでもエラーが発生する場合は、詳しく説明してもらえますか。

1
emcee

私は答えを探していましたが、見つけることができませんでしたが、最終的にplay-service-ads依存関係を追加することによってこれを修正することができます

*)ファイル - >プロジェクト構造... - >モジュールの下にアプリがあり、依存関係と呼ばれるオプションがあり、あなたはcom.google.Android.gmsを追加することができます:play-services -ads:xxxプロジェクトへの依存関係

私はEclipseプロジェクトをAndroid Studioにインポートしようとしたときにこの問題に直面しました。

Image

1
HashanR

私は通常、xmlns:adsプロパティをadviewプロパティに次のように埋め込みます。

<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"
    Android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_ad_unit_id"/>

adviewをコピーするたびに親に埋め込む必要がないようにします。

上記のadviewをコピーして貼り付けるだけで、どこにでも貼り付けることができます。

1
MBH

私の問題は非常に似ていました(同じ問題を引き起こします)。 Android Studioの "refactor - > rename"オプションで変数名をリファクタリングした後( "value"から "myValue"へ)、マニフェストファイルにも変更が見つかりました。メタデータの "値"プールが "myValue"に変更されました。

<meta-data
        Android:name="com.facebook.sdk.ApplicationId"
        Android:myValue="@string/facebook_app_id"/>

ファイルを元に戻すと、すべて問題なく継ぎ目がなくなります。

<meta-data
        Android:name="com.facebook.sdk.ApplicationId"
        Android:value="@string/facebook_app_id"/>

誰かに役立つことを願っています!

0
Adrian Grygutis

Xmlに"Android:"属性を持つDrawablesとLayoutsファイルでクラスライブラリを構築するとき、私はMonoDroidに同様の問題を抱えていました。質問のエラーと同じエラーが出ます。

パッケージ 'Android'の属性 'textCursorDrawable'にリソース識別子が見つかりません

私はその "Android:"属性がAndroid API Level 12以降でのみ利用可能であることを知り、私は古いバージョン用にビルドしようとしていました。私のプロジェクトをAndroid 4.0に対してビルドするようにアップデートすることで問題は解決しました。ここで私は答えを見つけました。 https://groups.google.com/forum/?fromgroups#!topic/Android-developers/ocxKphM5MWM 同じような問題が発生した場合は、適切なAPIレベルに対して構築していることを確認してください。不足している識別子が、あなたが構築しようとしているAPIレベルに存在することを確認してください。

0
Has AlTaiar

私はこれと同じエラーに対してうまくいった解決策を追加しています。

プロジェクト>プロパティ>(左パネル)Androidを右クリックしました

Libraryの下の右側のパネル障害のあるライブラリを削除して、もう一度追加しました。

私にとっては、このエラーは、すべてのプロジェクトを再度インポートしなければならない、破損したワークスペースEclipseファイルの後に発生しました。

0
Onimusha

ターゲットのsdkを変更してプロジェクトを右クリックし、プロパティをクリックしてAndroidを選択し、最新のAPIを選択してください。

0
Shaikh Sohail

xmlns:ads = "http://schemas.Android.com/apk/lib/com.google.ads"を追加すると、問題が解決します。

<RelativeLayout 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: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="com.app.activities.Initializer" >


    <com.google.Android.gms.ads.AdView
        Android:id="@+id/adView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-123456789/123456789"/>

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

</RelativeLayout>
0
N.L.N.Rao

あなたのプロジェクトがgradleプロジェクトの場合

xmlns:Android="http://schemas.Android.com/apk/res/Android" 

と:

xmlns:app="http://schemas.Android.com/apk/res-auto"
0
Sahana P

私は同じ問題を抱えていました、そして私の治療法は私のアプリモジュールのbuild.gradleで単にデータバインディングを有効にすることです。

Android {... dataBinding.enabled = true}

ref - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-Android/

0
Gracie

私の場合、アプリレベルのbuild.gradleに依存関係がありませんでした。

解決策は、以下のグーグルアウトラインとして依存関係を追加することでした:

アプリのアプリレベルのbuild.gradleファイルを開き、「依存関係」セクションを探します。

dependencies {
    implementation ...SOME_IMPLEMENTATION
    implementation ...SOME_IMPLEMENTATION
    implementation 'com.google.Android.gms:play-services-ads:18.1.1'//<---ADD THIS LINE
}

上記の行を追加します。これは、Gradleに最新バージョンのMobile Ads SDKと追加の関連する依存関係を取り込むように指示します。それが完了したら、ファイルを保存し、Gradle同期を実行します。

0
smitty1

xmlns:Android="http://schemas.Android.com/apk/res/Android"xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"に置き換えます

それからプロジェクトを再構築

0
Shubham Soni

私も同じ問題に直面しました、私はGoogleAdMobAdsSDK-4.1.0.jarを使用していました、そしてそれから私はGoogleAdMobAdsSDK-4.0.4.jarと試みましたそれは今うまく働いています、それは私の経験によるとjarファイルに関する問題です。

0
vicky

同じエラーが、res/layoutフォルダ内の "activity_banner_xml.xml"ファイルでも発生していました。それを修正するために私がしたのは置き換えでした

<com.google.Android.gms.samples.ads.AdView

<com.google.Android.gms.ads.AdView

私のパッケージ名への参照がありませんでした。また、必ずads:adUnitId="@string/banner_ad_unit_id">のadUnitIdを設定してください。追加ユニットIDは、res/Values/Stringsフォルダーにあります。

だから私の最終的なレイアウトファイルはこのようになります:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/mainLayout"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<com.google.Android.gms.ads.AdView
    Android:id="@+id/adView"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/ad_unit_id"/>
0
Gene

私はAndroid.support.design.widget.NawigationViewこのパラメータに追加しました。

Android:layout_gravity="start"

そして問題は解決しました。

0
Bombey77