kesalahan: Tidak ditemukan pengidentifikasi sumber daya untuk atribut 'adSize' di paket 'com.google.example' main.xml

144

Ketika saya mengikuti instruksi untuk menambahkan iklan ke dalam aplikasi saya dengan xml, saya mendapatkan kesalahan berikut:

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

Saya memang mengedit main.xml, menambahkan attrs.xmlfile tetapi kompiler tidak menyukainya.

pengguna584819
sumber
1
Rekatkan tata letak dan attrs.xml
Cristian

Jawaban:

299

Ganti /res/dengan /lib/di nampespace tata letak khusus Anda.

xmlns:android="http://schemas.android.com/apk/res/android" dalam kasus Anda, akan menjadi:

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

Saya harap ini membantu.

M_AWADI
sumber
Saya memiliki masalah yang berbeda, tetapi solusi yang sama berhasil. Pada dasarnya saya menggunakan file layout yang mereferensikan file / res yang saya ubah menjadi / lib sesuai instruksi di sini dan itu berhasil. Bisakah Anda memberikan penjelasan tentang apa yang terjadi di sini?
RightHandedMonkey
xmlns: yourApp = "schemas.android.com/apk/res-auto";
Faizan Mubasher
7
Hai, Apa aplikasi Anda dan Kelas Anda di solusi di atas?
Programmer
3
tolong tulis satu contoh
Iman Marashi
setiap kali saya melakukan itu dan membangun kembali proyek itu secara otomatis mengkonversi yang sama dengan yang sebelumnya dan melempar kesalahan
Sagar Devanga
74

Saya memiliki masalah yang sama. Saya menyalin kode contoh dari kode Google, dan tidak dapat mengkompilasi.

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

Akhirnya, saya menemukan jawabannya. Bagian terakhir dari kode " com.google.example", adalah nama paket mereka, jadi Anda perlu menggantinya dengan paket proyek Anda.

Sebagai contoh, paket proyek saya adalah " com.jms.AdmobExample", jadi adsruang penamaan saya adalah:

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

Lihat contoh saya, itu berfungsi dengan baik. Anda dapat mengunduh APK untuk mencoba. Saya juga memasukkan kode sumber saya di sini: Tambahkan Google Admob di Aplikasi Android

James
sumber
13
Devs, jika Anda menggunakan paket proyek Anda di xmlns: iklan, maka Anda juga perlu menambahkan 'attrs.xml' seperti yang dijelaskan oleh James di tautannya. Untuk Admob sdk yang lebih baru, attrs.xml tidak lagi direkomendasikan. Cukup gunakan namespace berikut:xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
vivek.m
8
@ vivek.m, terima kasih telah menunjukkan jawaban yang benar kepada saya! Sebaliknya apk / res satu HARUS menggunakan apk / lib dalam kasus ketergantungan proyek 'apklib'.
se.solovyev
4
Terima kasih, saya suka internet, khususnya Stackoverflow.com
htafoya
Terima kasih banyak, setelah 3 jam mencari dan men-debug jawaban Anda akhirnya muncul dan memperbaikinya.
Vlad Schnakovszki
@ vivek.m terima kasih itulah jawaban yang sesuai untuk saya - dengan com.google.ads.
raddevus
42

untuk saya, saya harus menambahkan

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

tepat setelah:

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

di res / layout / main.xml

Zennichimaro
sumber
1
Kamu adalah penyelamat hidup & tidur ... Terima kasih, kamu menyelamatkan tidurku :)
Naruto
Saya punya pertanyaan admin: stackoverflow.com/questions/36389729/... \
Ruchir Baronia
27

Anda juga dapat menggunakan http://schemas.android.com/apk/res-auto yang akan menanganinya secara otomatis. Gunakan seperti ini:

xmlns:ads="http://schemas.android.com/apk/res-auto"
Bms270
sumber
@ Niklas: Ini bukan tautan halaman web. Ini adalah URL yang akan digunakan seperti ini: xmlns: ads = " schemas.android.com/apk/res-auto " yang secara otomatis menyelesaikan URL sumber daya. Lihat jawaban saya yang diperbarui di atas.
Bms270
8

Saya memiliki masalah yang sama, tetapi saat menggunakan proyek perpustakaan. Masalahnya telah dipecahkan pada r17: Alih-alih menggunakan namespace paket:

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

Kita harus menggunakan namespace dummy:

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

Ini akan memperbaiki masalah atribut yang tidak dapat diakses dari proyek referensi.

Andras Balázs Lajtha
sumber
8

saya mengunduh demo khusus yang sama dari Android.com dan mendapatkan masalah keluhan yang sama.

di frist, saya berubah

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

untuk

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

ini bekerja. maka saya mendapatkan solusi lain

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

ini juga berfungsi, tetapi ada beberapa perbedaan. Solusi kedua memiliki fungsi prefek. Saya menemukan alasannya, mungkin Anda bisa ikut. Terima kasih

Tagihan
sumber
" schemas.android.com/apk/res-auto " tambahkan semua atribut yang ditentukan dalam proyek Anda serta didefinisikan dalam perpustakaan yang Anda referensikan dalam proyek Anda. oleh karena itu bekerja untuk Anda dan pendekatan yang lebih bersih
SAIR
3

Saat Anda menentukan dalam attrs.xmlatribut adSize Anda milik namespace com.google.ads.AdView. Coba ubah:

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

untuk

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

dan itu harus bekerja.

PA
sumber
@FranciscoCorralesMorales saya memang menambahkannya tetapi tetap saja tidak berfungsi
Sagar Devanga
3

Saya menerima kesalahan ini sehubungan dengan atribut LargeHeap, aplikasi saya tidak berjalan di bawah gerhana tetapi di bawah semut itu masih dibangun dan berjalan secara normal.

Dokumentasi android menyatakan bahwa:

xmlns: android

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

Saya menghapus garis itu dalam manifes saya, disimpan dalam gerhana, menempelkan garis itu kembali dan menyelamatkan lagi, dan itu berhasil. Dalam kasus saya, saya kira masalahnya adalah gerhana, semut dan adb tidak berbicara satu sama lain dengan benar dan menyimpan ulang sesuatu. Menariknya memulai kembali gerhana tidak menyelesaikan masalah ini (biasanya dengan jenis masalah ini memulai ulang gerhana adalah hal pertama yang harus Anda coba, dan biasanya itu memecahkan masalah).

tjb
sumber
Thx this pls perubahan "xmlns:" url menyelamatkan saya :)
songyy
Saya punya pertanyaan admin: stackoverflow.com/questions/36389729/…
Ruchir Baronia
2

Pastikan Anda telah memasukkan bagian ini dalam tata letak Anda (atas di bawah xmlns: baris android)

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

Periksa juga apakah Anda telah memasukkan attrs.xml dalam res / values ​​/

Periksa di sini untuk detail lebih lanjut. http://code.google.com/mobile/ads/docs/android/banner_xml.html

Kabilan
sumber
1

Berdasarkan jawaban di sini , saya pikir Anda perlu mengubah atribut xmlns: ads. Misalnya, ubah ini:

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

untuk ini:

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

Memperbaikinya untuk saya. Jika Anda masih mendapatkan kesalahan, bisakah Anda menguraikan?

pembawa acara
sumber
1

Saya biasanya menyematkan properti xmlns: ads ke properti adview dengan cara ini:

<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"/>

sehingga Anda tidak perlu menyematkan orang tua setiap kali Anda menyalin adview.

Cukup salin dan tempel adview di atas dan tempel di mana saja dan itu akan berhasil

MBH
sumber
1

Saya telah mencari jawaban tetapi tidak dapat menemukan tetapi akhirnya saya dapat memperbaikinya dengan menambahkan play-service-adsketergantungan mari kita coba ini:

*) File -> Struktur Proyek ... -> Di bawah modul Anda dapat menemukan aplikasi dan ada opsi yang disebut dependensi dan Anda dapat menambahkan com.google.android.gms: play-services-ads: dependensi xxx ke proyek Anda

Saya menghadapi masalah ini ketika saya mencoba mengimpor proyek Eclipse ke Android Studio.

Gambar

HashanR
sumber
1

Dalam kasus saya, saya kehilangan ketergantungan pada build.gradle tingkat aplikasi.

Solusinya adalah menambahkan ketergantungan seperti yang dijelaskan Google di bawah ini:

Buka file build.gradle tingkat aplikasi untuk aplikasi Anda, dan cari bagian "dependensi".

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

Tambahkan baris di atas, yang menginstruksikan Gradle untuk menarik versi terbaru dari Mobile Ads SDK dan dependensi tambahan terkait. Setelah selesai, simpan file dan lakukan sinkronisasi Gradle.

smitty1
sumber
0

Saya juga menghadapi masalah yang sama, saya menggunakan GoogleAdMobAdsSDK-4.1.0.jarkemudian saya coba dengan GoogleAdMobAdsSDK-4.0.4.jarsekarang itu berfungsi dengan baik, Ini masalah dengan file jar sesuai pengalaman saya.

vicky
sumber
0

Saya punya masalah serupa pada MonoDroid ketika membangun perpustakaan kelas dengan file Drawables and Layouts yang memiliki "android:"atribut dalam xml. Saya mendapatkan kesalahan serupa dengan yang ada di pertanyaan.

Pengidentifikasi sumber daya tidak ditemukan untuk atribut 'textCursorDrawable' dalam paket 'android'

Saya menemukan dari atribut "android:" hanya tersedia di Android API Level 12+ dan saya mencoba membangun untuk versi yang lebih lama. Memperbarui proyek saya menjadi Android 4.0 telah memperbaiki masalah saya. Di sinilah saya menemukan jawabannya. https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM Pastikan Anda membangun terhadap tingkat API yang tepat jika Anda mendapatkan masalah yang sama, dan memastikan bahwa pengidentifikasi yang hilang ada di tingkat API yang Anda bangun melawan.

Memiliki AlTaiar
sumber
0

cukup ubah sdk target klik kanan pada proyek kemudian klik pada properti pilih android dan pilih API terbaru

Shaikh Sohail
sumber
0

Kesalahan yang sama terjadi pada saya di file "activity_banner_xml.xml" di dalam folder res / layout. Apa yang saya lakukan untuk memperbaikinya adalah menggantinya

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

dengan

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

Tidak ada referensi untuk nama paket saya. Juga, pastikan Anda mengatur adUnitId untuk ads:adUnitId="@string/banner_ad_unit_id"> Add unit id yang ada di folder res / Values ​​/ Strings Anda.

Jadi file layout terakhir saya terlihat seperti ini:

<?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"/>

Gene
sumber
0

Jika proyek Anda adalah gradle, gantilah:

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

dengan:

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

Saya menambahkan solusi yang berfungsi untuk saya untuk kesalahan yang sama ini.

Saya mengklik kanan proyek> properties> (panel kiri) Android

Panel kanan di bawah Librarysaya menghapus perpustakaan yang salah dan menambahkannya lagi.

Bagi saya kesalahan ini terjadi setelah file gerhana ruang kerja yang rusak di mana saya harus mengimpor semua proyek lagi.

Onimusha
sumber
0

Masalah saya sangat mirip (menghasilkan masalah yang sama). Setelah refactoring nama variabel dengan opsi "refactor -> rename" di Android Studio (dari "value" menjadi "myValue") saya menemukan perubahan dalam file manifes juga. Kumpulan "nilai" meta data telah berubah menjadi "myValue".

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

Setelah mengembalikan file, semua jahitan menjadi ok lagi.

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

Saya harap, ini akan membantu seseorang!

Adrian Grygutis
sumber
0

Tambahkan xmlns: ads = "http://schemas.android.com/apk/lib/com.google.ads" , Ini akan menyelesaikan Masalah Anda.

<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>
NLNRao
sumber
0

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

kemudian Rebuild Project

Shubhamhackz
sumber
0

Saya menambahkan di android.support.design.widget.NawigationLihat parameter ini:

android:layout_gravity="start"

Dan masalah terpecahkan.

Bombey77
sumber
-2

PUT compile 'de.hdodenhof:circleimageview:2.0.0' IN Gradle Dependencies dan letakkan kode ini di nav_header_main.xml

<?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>
Rhimi Wajih
sumber