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


144

指示に従ってアプリに広告を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ファイルを追加しましたが、コンパイラーはそれを好みませんでした。


1
レイアウトとattrs.xmlを貼り付けます
クリスティアン

回答:


299

置き換え/res//lib/カスタムレイアウトnampespaceインチ

xmlns:android="http://schemas.android.com/apk/res/android" あなたの場合、次のようになります:

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

お役に立てば幸いです。


別の問題が発生しましたが、同じ解決策が機能しました。基本的に私はここの指示に従って/ libに変更した/ resファイルを参照するレイアウトファイルを使用していて、それは機能しました。ここで何が起こっているのか説明を提供できますか?
RightHandedMonkey 14年

xmlns:yourApp = "schemas.android.com/apk/res-auto";
Faizan Mubasher 2014

7
こんにちは、上記のソリューションのyourAppとyourClassは何ですか?
プログラマー

3
例を1つ書いてください
Iman Marashi 2016年

それを行ってプロジェクトを再構築するたびに、自動的に同じものを以前のものに変換し、エラーをスローします
Sagar Devanga

74

同じ問題がありました。サンプルコードを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を追加します


13
開発者、xmlns:adsでプロジェクトパッケージを使用している場合は、Jamesのリンクで説明されているように、「attrs.xml」も追加する必要があります。新しいAdmob sdkでは、attrs.xmlは推奨されなくなりました。ただ、次の名前空間を使用しますxmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
vivek.m

8
@ vivek.m、正しい答えを教えてくれてありがとう!代わりに、apk / resは、「apklib」プロジェクトの依存関係の場合にapk / libを使用する必要があります。
se.solovyev

4
ありがとう、私はインターネット、特にStackoverflow.comが大好きです
htafoya 2013

ありがとうございます。3時間の検索とデバッグの結果、最終的に回答がポップアップして修正されました。
Vlad Schnakovszki 2013

@ vivek.mおかげで、com.google.adsでうまくいきました。
raddevus

42

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

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

直後の:

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

res / layout / main.xml


1
あなたは人生と睡眠の節約です...ありがとう、あなたは私の睡眠を救いました:)
Naruto

私はAdmob質問があります:stackoverflow.com/questions/36389729/… \
Ruchir Baronia

27

自動的に処理されるhttp://schemas.android.com/apk/res-autoを使用することもできます。次のように使用します。

xmlns:ads="http://schemas.android.com/apk/res-auto"

@Niklas:これはWebページのリンクではありません。これは、次のように使用されるURL です。xmlns:ads = " schemas.android.com/apk/res-auto "これは、リソースURLを自動的に解決します。上記の私の更新された回答を参照してください。
Bms270 2014

8

同じ問題がありましたが、ライブラリプロジェクトを使用しています。この問題はr17で解決されました:パッケージの名前空間を使用する代わりに:

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

ダミーの名前空間を使用する必要があります:

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

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


8

Android.comから同じカスタムデモをダウンロードすると、同じ問題が発生します。

フリストで、私は変わります

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"

それも機能しますが、いくつかの違いがあります。2番目のソリューションには、完全な機能があります。私は理由を見つけています、あなたは手を貸すことができるかもしれません。ありがとう


" schemas.android.com/apk/res-auto "は、プロジェクトで定義されたすべての属性と、プロジェクトで参照したライブラリで定義されたすべての属性を追加します。したがって、それはあなたのために機能し、よりクリーンなアプローチ
SAIR

3

で指定したとおりattrs.xml、adSize属性は名前空間に属しますcom.google.ads.AdView。変更してみてください:

android:adUnitId="a14bd6d2c63e055"         android:adSize="BANNER"

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

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


@FranciscoCorralesMorales私はそれを追加しましたが、それでも機能しません
Sagar Devanga

3

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を再起動することを最初に試す必要があり、通常は問題を解決します)。


これは、 "xmlns:" urlの変更によって節約できました:)
songyy

私は、AdMobの質問があります。stackoverflow.com/questions/36389729/...
Ruchir Baronia

2

レイアウトにこの部分が含まれていることを確認してください(xmlns:android行の下の上)

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


1

ここでの答えに基づいて、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

通常、この方法で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をコピーするたびに親に埋め込む必要はありません。

上記のアドビューをコピーして貼り付け、どこにでも貼り付けるだけで機能します


1

私は答えを検索してきましたが見つかりませんでしたが、最後にplay-service-ads依存関係を追加することでこれを修正することができますこれを試してみましょう:

*)ファイル->プロジェクトの構造...->モジュールの下にアプリがあり、依存関係というオプションがあり、com.google.android.gms:play-services-ads:xxx依存関係をプロジェクトに追加できます。

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

画像


1

私の場合、アプリレベルの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

私も同じ問題に直面しました、使用GoogleAdMobAdsSDK-4.1.0.jarGoogleAdMobAdsSDK-4.0.4.jarていたのですが、試してみましたが、問題なく動作しています。私の経験によると、jarファイルに問題があります。


0

"android:"XMLに属性を持つDrawablesファイルとLayoutsファイルを使用してクラスライブラリを構築するときに、MonoDroidで同様の問題が発生しました。問題のエラーと同様のエラーが発生します。

パッケージ「android」の属性「textCursorDrawable」のリソース識別子が見つかりません

その「android:」属性はAndroid APIレベル12以上でのみ使用可能であることがわかり、古いバージョン用にビルドしようとしていました。Android 4.0に対してビルドするようにプロジェクトを更新すると、問題が解決しました。ここで私は答えを見つけました。 https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM 同様の問題が発生した場合は、適切なAPIレベルでビルドしていることを確認し、不足している識別子がビルドの対象となるAPIレベル。


0

ターゲットSDKを変更するだけで、プロジェクトを右クリックし、プロパティをクリックしてAndroidを選択し、最新のAPIを選択します


0

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

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

<com.google.android.gms.ads.AdView

私のパッケージ名への参照はありませんでした。また、必ずadUnitIdをads:adUnitId="@string/banner_ad_unit_id"> アドユニット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

あなたがgradleプロジェクトの場合は置き換えてください:

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

と:

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

0

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

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

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

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


0

私の問題は非常に似ていました(同じ問題が発生します)。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

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

交換する xmlns:android="http://schemas.android.com/apk/res/android"xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

その後、プロジェクトを再構築します


0

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

android:layout_gravity="start"

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



-2

PUT compile 'de.hdodenhof:circleimageview:2.0.0' nav_header_main.xmlにこのコードをGradleの依存関係INと置きます

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/lib/org.mainsoft.navigationdrawer"

    android:gravity="bottom"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:layout_width="match_parent"
    android:layout_height="160dp"
    android:background="@drawable/background_material_red"
    android:orientation="vertical">

<de.hdodenhof.circleimageview.CircleImageView

    android:id="@+id/profile_image"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:src="@drawable/profile"
    app:border_color="#FF000000"
    android:layout_marginLeft="24dp"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginStart="24dp" />

</LinearLayout>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.