hata: "com.google.example" main.xml paketinde "adSize" özelliği için kaynak tanımlayıcı bulunamadı


144

Uygulamama xml ile bir reklam ekleme talimatlarını izlediğimde, aşağıdaki hataları aldım:

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.xmlEkle attrs.xmldosyasını düzenledim ama derleyici beğenmedi.


1
Düzeni ve attrs.xml'yi yapıştırın
Cristian

Yanıtlar:


300

Özel düzen boş alanınızda /res/ile değiştirin /lib/.

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

sizin durumunuzda şunlar olacaktır:

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

Umut ediyorum bu yardım eder.


Farklı bir problemim vardı ama aynı çözüm işe yaradı. Temel olarak, buradaki talimatlara göre / lib olarak değiştirdiğim / res dosyasına başvuran bir düzen dosyası kullanıyordum ve işe yaradı. Burada neler olup bittiğine dair bir açıklama yapabilir misiniz?
RightHandedMonkey

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

7
Merhaba, Yukarıdaki çözümdeki Uygulamanız ve Sınıfınız nedir?
Programcı

3
lütfen bir örnek yazın
Iman Marashi

ne zaman bunu yapsam ve projeyi yeniden inşa
etsem

74

Ben de aynı sorunu yaşadım. Örnek kodu Google kodundan kopyaladım ve derleyemedim.

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

Sonunda anladım. " com.google.example" Kodunun son kısmı paket adıdır, bu yüzden onu proje paketinizle değiştirmeniz gerekir.

Örneğin, proje paketim " com.jms.AdmobExample", dolayısıyla adsadlandırma alanım:

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

Örneğime bakın, iyi çalışıyor. Denemek için APK'yi indirebilirsiniz. Kaynak kodumu da buraya yazdım: Android Uygulamasına Google Admob'u ekle


13
Devs, proje paketinizi xmlns: ads'da kullanıyorsanız, James'in bağlantısında açıkladığı gibi 'attrs.xml'i de eklemeniz gerekir. Daha yeni Admob sdk için attrs.xml artık önerilmemektedir. Sadece aşağıdaki ad alanını kullanın:xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
vivek.m

8
@ vivek.m, bana doğru cevabı gösterdiğin için teşekkür ederim! 'Apklib' proje bağımlılığı durumunda apk / res yerine apk / lib kullanmalıdır.
se.solovyev

4
Teşekkürler, interneti seviyorum, özellikle Stackoverflow.com
htafoya

Çok teşekkürler, 3 saatlik arama ve hata ayıklamadan sonra cevabınız nihayet ortaya çıktı ve düzeltti.
Vlad Schnakovszki

@ vivek.m teşekkürler - com.google.ads ile benim için işe yarayan yanıt buydu.
raddevus



8

Aynı sorunu yaşadım, ancak bir kütüphane projesi kullanırken. Sorun r17'de çözüldü: Paketin ad alanını kullanmak yerine:

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

Sahte bir ad alanı kullanmak gerekir:

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

Bu, referans projesinden erişilemeyen öznitelik sorununu çözecektir.


8

Aynı özel demoyu Android.com'dan indiriyorum ve aynı derleme problemini alıyorum .

ilk olarak değişirim

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

-e

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

işe yarıyor. sonra başka bir çözüm buldum

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

aynı zamanda işe yarıyor, ancak bazı farklılıklar var. İkinci çözüm mükemmel bir işleve sahiptir. Sebebini buluyorum, belki yardım edebilirsin. teşekkürler


" schemas.android.com/apk/res-auto " projenizde referans verdiğiniz kitaplıklarda tanımlanmış olanların yanı sıra projenizde tanımlanan tüm öznitelikleri ekleyin. bu nedenle sizin için ve daha temiz yaklaşımı için çalışıyor
SAIR

3

attrs.xmlAdSize özelliğinizde belirttiğiniz gibi ad alanına aittir com.google.ads.AdView. Değişmeye çalış:

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

-e

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

ve çalışmalıdır.


@FranciscoCorralesMorales ekledim ama hala çalışmıyor
Sagar Devanga

3

Bu hatayı largeHeap Özniteliğiyle ilgili olarak aldım, uygulamam tutulma altında çalışmadı, ancak karınca altında hala normal olarak oluşturuldu ve çalıştı.

Android belgeleri şunları belirtir:

Öznitellikler:

xmlns:android

Android ad alanını tanımlar. Bu özellik her zaman " http://schemas.android.com/apk/res/android" olarak ayarlanmalıdır .

Manifestomdaki bu satırı sildim, tutulmada kurtardım, çizgiyi tekrar yapıştırdım ve tekrar kurtardım ve işe yaradı. Benim durumumda sanırım sorun tutulma, karınca ve adb'nin birbirleriyle doğru şekilde konuşmamasıydı ve tasarruf bir şeyi sıfırladı. Tutulmayı ilginç bir şekilde yeniden başlatmak bu sorunu çözmedi (genellikle bu tür sorunlarda tutulmayı yeniden başlatmak denemeniz gereken ilk şeydir ve genellikle sorunu çözer).


Thx bu pls "xmlns:" url değişikliği beni kurtardı :)
songyy


2

Bu bölümü mizanpajınıza dahil ettiğinizden emin olun (xmlns'nin altında: android satırı)

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

Ayrıca res / values ​​/ içine attrs.xml'yi ekleyip eklemediğinizi kontrol edin.

Daha fazla ayrıntı için burayı kontrol edin. http://code.google.com/mobile/ads/docs/android/banner_xml.html


1

Genellikle xmlns: ads özelliğini adview özelliklerine şu şekilde yerleştiririm:

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

böylece her bir tavsiyeyi her kopyaladığınızda ebeveyne yerleştirmenize gerek kalmaz.

Sadece yukarıdaki öneriyi kopyalayıp yapıştırın ve herhangi bir yere yapıştırın, çalışmalıdır


1

Cevabı arıyordum ama bulamadım ama sonunda bunu play-service-adsbağımlılık ekleyerek düzeltebilirim, hadi şunu deneyelim:

*) Dosya -> Proje Yapısı ... -> Modülün altında uygulamayı bulabilir ve bağımlılıklar adı verilen bir seçenek vardır ve projenize com.google.android.gms: play-services-ads: xxx bağımlılığı ekleyebilirsiniz

Eclipse projelerini Android Studio'ya aktarmaya çalıştığımda bu sorunla karşılaştım.

Resim


1

Benim durumumda, uygulama düzeyinde build.gradle'da bir bağımlılık eksikti.

Çözüm, bağımlılığı Google'ın ana hatlarıyla aşağıda belirtildiği şekilde eklemekti:

Uygulamanız için uygulama düzeyinde build.gradle dosyasını açın ve "bağımlılıklar" bölümünü arayın.

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

Yukarıya, Gradle'a Mobile Ads SDK'sının en son sürümünü ve ilgili diğer bağımlılıkları çekmesi talimatını ekleyin. Bu tamamlandığında, dosyayı kaydedin ve Gradle senkronizasyonu gerçekleştirin.


1

Buradaki cevaba göre , xmlns: ads özelliğini değiştirmeniz gerektiğini düşünüyorum. Örneğin, şunu değiştirin:

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

buna:

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

Benim için düzeltti. Hala hata alıyorsanız, ayrıntılara girebilir misiniz?


0

Ben de aynı problemle karşılaştım, kullanıyordum GoogleAdMobAdsSDK-4.1.0.jarve GoogleAdMobAdsSDK-4.0.4.jarşimdi denedim, şimdi iyi çalışıyor, deneyimlerime göre jar dosyasıyla ilgili sorun.


0

Xml'de "android:"özniteliğe sahip Drawables ve Layouts dosyalarıyla bir sınıf kitaplığı oluştururken MonoDroid'de benzer bir sorun yaşadım . Sorudakine benzer bir hata alıyorum.

"Android" paketinde "textCursorDrawable" özelliği için kaynak tanımlayıcı bulunamadı

Bu "android:" özniteliğinin yalnızca Android API Level 12+ için mevcut olduğunu buldum ve daha eski bir sürüm için oluşturmaya çalışıyordum. Projemi Android 4.0'a göre oluşturmak için güncellemek sorunu benim için çözdü. Cevabı burada buldum. https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM Benzer bir sorunla karşılaşırsanız doğru API düzeyine göre oluşturduğunuzdan emin olun ve eksik tanımlayıcının içinde bulunduğundan emin olun. karşı oluşturduğunuz API seviyesi.


0

sadece hedef sdk'yi değiştirin projeye sağ tıklayın, ardından mülke tıklayın android'i seçin ve en son API'yi seçin


0

Res / layout klasörünün içindeki "activity_banner_xml.xml" dosyasında da aynı hata bana oluyordu. Düzeltmek için yaptığım şey değiştirmekti

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

ile

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

Paket adıma referans yoktu. Ayrıca, ads:adUnitId="@string/banner_ad_unit_id"> ekleme birimi kimliği için adUnitId değerini res / Values ​​/ Strings klasörünüzde yer aldığınızdan emin olun .

Son düzen dosyam şöyle görünüyor:

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

Sizinki bir gradle projesiyse değiştirin:

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

ile:

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

0

Aynı hata için benim için çalışan çözümü ekliyorum.

Projeye sağ tıkladım> özellikler> (sol panel) Android

Sağdaki panelde Libraryhatalı kitaplığı kaldırdım ve tekrar ekledim.

Benim için bu hata, tüm projeleri yeniden içe aktarmak zorunda olduğum bozuk bir çalışma alanı tutulmasından sonra meydana geldi.


0

Benim problemim çok benzerdi (aynı problemi üretir). Değişken adını Android Studio'da "refactor -> rename" seçeneği ile yeniden düzenledikten sonra ("value" dan "myValue" ye) manifest dosyasında da değişiklikler buldum. Meta veri "değer" havuzu "değerim" olarak değiştirildi.

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

Dosyayı geri döndürdükten sonra her şey tekrar tamam olacak şekilde dikiş yapar.

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

Umarım birine yardımcı olur!


0

Xmlns ekleyin : ads = "http://schemas.android.com/apk/lib/com.google.ads" , Bu Sorununuzu çözecektir.

<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

Değiştir xmlns:android="http://schemas.android.com/apk/res/android" ile xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

sonra Projeyi Yeniden Oluştur


0

Ben eklenen android.support.design.widget.NawigationView bu parametre:

android:layout_gravity="start"

Ve sorun çözüldü.



-2

PUT compile 'de.hdodenhof:circleimageview:2.0.0' IN Gradle bağımlılıklar ve nav_header_main.xml Bu kodu koymak

<?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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.