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
ファイルを追加しましたが、コンパイラはそれを好みませんでした。
カスタムレイアウトネームスペースの/res/
を/lib/
に置き換えます。
あなたの場合xmlns:Android="http://schemas.Android.com/apk/res/Android"
は、
xmlns:yourApp="http://schemas.Android.com/apk/lib/com.yourAppPackege.yourClass"
助けになれば幸いです。
私は同じ問題を抱えていました。サンプルコードを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を追加します
私にとっては、私は追加する必要があります
xmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
直後の:
xmlns:Android="http://schemas.Android.com/apk/res/Android"
res/layout/main.xmlにあります。
あなたは http://schemas.Android.com/apk/res-auto を使うこともできます。このように使用してください。
xmlns:ads="http://schemas.Android.com/apk/res-auto"
私は 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"
それも動作しますが、いくつかの違いがあります。二つ目の解決策は知能機能を持っています。私はその理由を見つけています、あなたは手を差し伸べることができますか?
私は同じ問題を抱えていましたが、図書館プロジェクトを使用していました。この問題は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を再起動することが最初の試みであり、通常は問題を解決します)。
attrs.xml
に指定したとおり、adSize属性はネームスペースcom.google.ads.AdView
に属します。変更してみてください。
Android:adUnitId="a14bd6d2c63e055" Android:adSize="BANNER"
に
ads:adUnitId="a14bd6d2c63e055" ads:adSize="BANNER"
そしてそれはうまくいくはずです。
この部分をあなたのレイアウトに含めたことを確認してください(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
答え ここ に基づいて、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" .../>
それは私のためにそれを修正しました。それでもエラーが発生する場合は、詳しく説明してもらえますか。
私は通常、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をコピーして貼り付けるだけで、どこにでも貼り付けることができます。
私の問題は非常に似ていました(同じ問題を引き起こします)。 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"/>
誰かに役立つことを願っています!
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レベルに存在することを確認してください。
私はこれと同じエラーに対してうまくいった解決策を追加しています。
プロジェクト>プロパティ>(左パネル)Androidを右クリックしました
Library
の下の右側のパネル障害のあるライブラリを削除して、もう一度追加しました。
私にとっては、このエラーは、すべてのプロジェクトを再度インポートしなければならない、破損したワークスペースEclipseファイルの後に発生しました。
ターゲットのsdkを変更してプロジェクトを右クリックし、プロパティをクリックしてAndroidを選択し、最新のAPIを選択してください。
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>
あなたのプロジェクトがgradleプロジェクトの場合
xmlns:Android="http://schemas.Android.com/apk/res/Android"
と:
xmlns:app="http://schemas.Android.com/apk/res-auto"
私は同じ問題を抱えていました、そして私の治療法は私のアプリモジュールのbuild.gradleで単にデータバインディングを有効にすることです。
Android {... dataBinding.enabled = true}
ref - https://halfthought.wordpress.com/2016/03/23/2-way-data-binding-on-Android/
私の場合、アプリレベルの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同期を実行します。
xmlns:Android="http://schemas.Android.com/apk/res/Android"
をxmlns:ads="http://schemas.Android.com/apk/lib/com.google.ads"
に置き換えます
それからプロジェクトを再構築
私も同じ問題に直面しました、私はGoogleAdMobAdsSDK-4.1.0.jar
を使用していました、そしてそれから私はGoogleAdMobAdsSDK-4.0.4.jar
と試みましたそれは今うまく働いています、それは私の経験によるとjarファイルに関する問題です。
同じエラーが、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"/>
私はAndroid.support.design.widget.NawigationViewこのパラメータに追加しました。
Android:layout_gravity="start"
そして問題は解決しました。