erro: nenhum identificador de recurso encontrado para o atributo 'adSize' no pacote 'com.google.example' main.xml

144

Quando segui as instruções para adicionar um anúncio ao meu aplicativo por xml, recebi os seguintes erros:

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

Eu editei o arquivo main.xmladd, attrs.xmlmas o compilador não gostou.

user584819
fonte
1
Cole o layout e o attrs.xml
Cristian

Respostas:

299

Substitua /res/por /lib/no nampespace de layout personalizado.

xmlns:android="http://schemas.android.com/apk/res/android" no seu caso, seria:

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

Espero que ajude.

M_AWADI
fonte
Eu tive um problema diferente, mas a mesma solução funcionou. Basicamente, eu estava usando um arquivo de layout que referencia o arquivo / res que eu mudei para / lib de acordo com as instruções aqui e funcionou. Você pode fornecer uma explicação do que está acontecendo aqui?
25914 RightHandedMonkey
xmlns: yourApp = "schemas.android.com/apk/res-auto";
Faizan Mubasher
7
Olá, O que é yourApp e yourClass na solução acima?
programador
3
por favor escreva um exemplo
Iman Marashi
sempre que eu faço isso e re construção do projeto Ele converte automaticamente o mesmo a anterior e gera o erro
Sagar Devanga
74

Eu tive o mesmo problema. Copiei o código de exemplo do código do Google e não consegui compilar.

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

Finalmente, eu descobri. A última parte do código " com.google.example" é o nome do pacote, portanto você precisa substituí-lo pelo pacote do projeto.

Por exemplo, meu pacote de projeto é " com.jms.AdmobExample", então meu adsespaço de nomeação é:

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

Veja meu exemplo, funciona bem. Você pode baixar o APK para experimentar. Também coloquei meu código-fonte aqui: Adicionar Google Admob no aplicativo Android

James
fonte
13
Devs, se você estiver usando seu pacote de projeto em xmlns: ads, também precisará adicionar 'attrs.xml', conforme explicado por James em seu link. Para o Admob sdk mais recente, o attrs.xml não é mais recomendado. Basta usar o seguinte espaço para nome:xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
vivek.m
8
@ vivek.m, obrigado por me indicar a resposta correta! Em vez disso, apk / res DEVE-se usar apk / lib no caso de dependência do projeto 'apklib'.
se.solovyev
4
Obrigado, eu amo a internet, especialmente Stackoverflow.com
htafoya 15/07/2013
Muito obrigado, após 3 horas de pesquisa e depuração, sua resposta finalmente apareceu e foi corrigida.
Vlad Schnakovszki
@ vivek.m obrigado, essa é a resposta que funcionou para mim - com o com.google.ads.
Raddevus
42

para mim eu tenho que adicionar

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

logo depois:

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

em res / layout / main.xml

Zennichimaro
fonte
1
Você é a vida & sleep saver ... Obrigado, u salvou meu sono :)
Naruto
Eu tenho uma pergunta da admob: stackoverflow.com/questions/36389729/… \
Ruchir Baronia
27

Você também pode usar http://schemas.android.com/apk/res-auto que cuidaria disso automaticamente. Use-o assim:

xmlns:ads="http://schemas.android.com/apk/res-auto"
Bms270
fonte
@ Niklas: Este não é um link de página da web. Este é um URL a ser usado assim: xmlns: ads = " schemas.android.com/apk/res-auto ", que resolve automaticamente o URL do recurso. Veja minha resposta atualizada acima.
Bms270
8

Eu tive o mesmo problema, mas enquanto usava um projeto de biblioteca. O problema foi resolvido na r17: Em vez de usar o espaço para nome do pacote:

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

É preciso usar um espaço de nome fictício:

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

Isso corrigirá o problema dos atributos que não estão acessíveis no projeto de referência.

Andras Balázs Lajtha
fonte
8

faço o download da mesma demonstração personalizada do Android.com e recebo o mesmo problema de conformidade.

primeiro, eu mudo

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

para

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

funciona . então eu recebo outra solução

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

Também funciona, mas existem algumas diferenças. A segunda solução tem função de prefeito. estou encontrando o motivo, pode ser que você possa ajudar. obrigado

Conta
fonte
" schemas.android.com/apk/res-auto " adiciona todos os atributos definidos no seu projeto, bem como definidos nas bibliotecas que você referenciou no seu projeto. portanto, ele funciona para você e sua abordagem mais limpo
SAIR
3

Conforme você especifica no seu attrs.xmlatributo adSize, pertence ao espaço para nome com.google.ads.AdView. Tente mudar:

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

para

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

e deve funcionar.

PA
fonte
@FranciscoCorralesMorales eu fiz adicioná-lo, mas ainda não está funcionando
Sagar Devanga
3

Eu recebi esse erro com relação ao atributo LargeHeap, meu aplicativo não foi executado no eclipse, mas no ant ele ainda foi criado e executado normalmente.

A documentação do Android afirma que:

xmlns: android

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

Apaguei essa linha no meu manifesto, salvei no eclipse, colei a linha novamente e salvei novamente, e funcionou. No meu caso, acho que o problema foi eclipse, ant e adb não se comunicaram corretamente e a redefinição foi salva. Curiosamente, reiniciar o eclipse não resolveu esse problema (geralmente com esses tipos de problemas, reiniciar o eclipse é a primeira coisa que você deve tentar e, geralmente, resolve o problema).

tjb
fonte
Thx este pls a mudança de "xmlns:" url salvo me :)
songyy
Eu tenho uma pergunta admob: stackoverflow.com/questions/36389729/...
Ruchir Baronia
2

Verifique se você incluiu esta parte em seu layout (topo abaixo xmlns: linha android)

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

Verifique também se você incluiu attrs.xml em res / values ​​/

Confira aqui para mais detalhes. http://code.google.com/mobile/ads/docs/android/banner_xml.html

Kabilan
fonte
1

Com base na resposta aqui , acho que você precisa alterar o atributo xmlns: ads. Por exemplo, altere isso:

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

para isso:

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

Consertou para mim. Se você ainda está recebendo erros, poderia elaborar?

mestre de cerimônias
fonte
1

Normalmente, incorporo a propriedade xmlns: ads nas propriedades adview da seguinte maneira:

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

para que você não precise incorporar ao pai toda vez que copiar a visualização.

Basta copiar e colar a visualização acima e colá-la em qualquer lugar e deve funcionar

MBH
fonte
1

Eu tenho procurado resposta, mas não consegui encontrar, mas finalmente eu poderia corrigir isso adicionando play-service-adsdependência, vamos tentar o seguinte:

*) Arquivo -> Estrutura do projeto ... -> No módulo, você pode encontrar o aplicativo e existe uma opção chamada dependências e pode adicionar com.google.android.gms: play-services-ads: xxx dependency ao seu projeto

Eu enfrentei esse problema ao tentar importar projetos Eclipse para o Android Studio.

Imagem

HashanR
fonte
1

No meu caso, estava faltando uma dependência no nível do aplicativo build.gradle.

A solução foi adicionar a dependência conforme o Google descreve abaixo:

Abra o arquivo build.gradle no nível do aplicativo e procure uma seção "dependências".

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

Adicione a linha acima, que instrui a Gradle a obter a versão mais recente do SDK de anúncios para celular e dependências adicionais relacionadas. Feito isso, salve o arquivo e execute uma sincronização Gradle.

smitty1
fonte
0

Eu também enfrentei o mesmo problema, eu estava usando GoogleAdMobAdsSDK-4.1.0.jare tentei GoogleAdMobAdsSDK-4.0.4.jaragora que está funcionando bem. É um problema com o arquivo jar conforme minha experiência.

vicky
fonte
0

Eu tive um problema semelhante no MonoDroid ao criar uma biblioteca de classes com arquivos Drawables e Layouts que possuem "android:"atributo no xml. Eu recebo um erro semelhante ao da pergunta.

Nenhum identificador de recurso encontrado para o atributo 'textCursorDrawable' no pacote 'android'

Descobri que o atributo "android:" está disponível apenas na API 12 ou superior do Android e eu estava tentando criar uma versão mais antiga. A atualização do meu projeto para compilação no Android 4.0 corrigiu o problema para mim. Aqui é onde eu encontrei a resposta. https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM Certifique-se de estar construindo com o nível de API correto se tiver um problema semelhante e verifique se o identificador ausente existe em no nível da API que você constrói.

Possui AlTaiar
fonte
0

basta alterar o sdk de destino, clique com o botão direito do mouse no projeto e, em seguida, clique na propriedade selecione android e selecione a API mais recente

Shaikh Sohail
fonte
0

O mesmo erro estava acontecendo comigo no arquivo "activity_banner_xml.xml" dentro da pasta res / layout. O que eu fiz para consertar foi substituir

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

com

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

Não houve referências ao nome do meu pacote. Além disso, certifique-se de definir o adUnitId para ads:adUnitId="@string/banner_ad_unit_id"> O ID da unidade de adição está localizado na sua pasta res / Values ​​/ Strings.

Portanto, meu arquivo de layout final fica assim:

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

Se o seu é um projeto gradle, substitua:

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

com:

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

Estou adicionando a solução que funcionou para mim para esse mesmo erro.

Cliquei com o botão direito do mouse em projeto> propriedades> (painel esquerdo) Android

No painel direito, Libraryremovi a biblioteca defeituosa e a adicionei novamente.

Para mim, esse erro ocorreu após um arquivo eclipse do espaço de trabalho corrompido, no qual tive que importar todos os projetos novamente.

Onimusha
fonte
0

Meu problema foi muito semelhante (produz o mesmo problema). Após refatorar o nome da variável pela opção "refactor -> rename" no Android Studio (de "value" para "myValue"), também encontrei alterações no arquivo de manifesto. O pool de "valor" dos metadados foi alterado para "myValue".

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

Depois de reverter o arquivo, tudo parece estar ok novamente.

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

Espero que ajude alguém!

Adrian Grygutis
fonte
0

Adicione xmlns: ads = "http://schemas.android.com/apk/lib/com.google.ads" . Isso resolverá o seu problema.

<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
fonte
0

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

então reconstruir projeto

Shubhamhackz
fonte
0

Eu adicionei no android.support.design.widget.NawigationVer este parâmetro:

android:layout_gravity="start"

E o problema foi resolvido.

Bombey77
fonte
-2

COLOCAR compile 'de.hdodenhof:circleimageview:2.0.0' Dependências Gradle e colocar esse código em 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
fonte