error: no se encontró un identificador de recurso para el atributo 'adSize' en el paquete 'com.google.example' main.xml

144

Cuando seguí las instrucciones para agregar un anuncio a mi aplicación mediante xml, obtuve los siguientes errores:

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

Edité el archivo de main.xmlagregar attrs.xml, pero al compilador no le gustó.

usuario584819
fuente
1
Pegue el diseño y los atributos.xml
Cristian

Respuestas:

299

Reemplace /res/con /lib/en su nampespace de diseño personalizado.

xmlns:android="http://schemas.android.com/apk/res/android" en su caso, sería:

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

Espero que ayude.

M_AWADI
fuente
Tuve un problema diferente, pero la misma solución funcionó. Básicamente estaba usando un archivo de diseño que hace referencia al archivo / res que cambié a / lib según las instrucciones aquí y funcionó. ¿Puedes dar una explicación de lo que está pasando aquí?
RightHandedMonkey
xmlns: yourApp = "schemas.android.com/apk/res-auto";
Faizan Mubasher
77
Hola, ¿Cuál es tu aplicación y tu clase en la solución anterior?
Programador el
3
escribe un ejemplo
Iman Marashi el
cada vez que hago eso y vuelvo a compilar el proyecto. Automáticamente convierte el mismo al anterior y arroja el error
Sagar Devanga
74

Yo tuve el mismo problema. Copié el código de ejemplo del código de Google y no pude compilar.

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

Finalmente, lo descubrí. La última parte del código " com.google.example" es el nombre del paquete, por lo que debe reemplazarlo con el paquete del proyecto.

Por ejemplo, mi paquete de proyecto es " com.jms.AdmobExample", por lo que mi adsespacio de nombres es:

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

Mira mi ejemplo, funciona bien. Puede descargar el APK para probar. También pongo mi código fuente aquí: Agregar Google Admob en la aplicación de Android

James
fuente
13
Devs, si está utilizando su paquete de proyecto en xmlns: ads, también debe agregar 'attrs.xml' como lo explicó James en su enlace. Para los nuevos Admob sdk, attrs.xml ya no se recomienda. Solo use el siguiente espacio de nombres:xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
vivek.m
8
@ vivek.m, ¡gracias por señalarme la respuesta correcta! En su lugar, apk / res DEBE usar apk / lib en caso de dependencia del proyecto 'apklib'.
se.solovyev
44
Gracias, me encanta internet, especialmente
Stackoverflow.com
Muchas gracias, después de 3 horas de búsqueda y depuración, su respuesta finalmente apareció y la arregló.
Vlad Schnakovszki
@ vivek.m gracias, esa es la respuesta que funcionó para mí, con com.google.ads.
raddevus
42

para mí tengo que agregar

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

justo después de:

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

en res / layout / main.xml

Zennichimaro
fuente
1
Eres el protector de la vida y el sueño ... Gracias, salvaste mi sueño :)
Naruto
Tengo una pregunta admob: stackoverflow.com/questions/36389729/… \
Ruchir Baronia
27

También puede usar http://schemas.android.com/apk/res-auto que se encargaría automáticamente. Úselo así:

xmlns:ads="http://schemas.android.com/apk/res-auto"
Bms270
fuente
@Niklas: este no es un enlace de página web. Esta es una URL que se utilizará así: xmlns: ads = " schemas.android.com/apk/res-auto " que resuelve automáticamente la URL del recurso. Vea mi respuesta actualizada arriba.
Bms270
8

Tuve el mismo problema, pero mientras usaba un proyecto de biblioteca. El problema se ha resuelto en r17: en lugar de utilizar el espacio de nombres del paquete:

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

Uno tiene que usar un espacio de nombres ficticio:

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

Esto solucionará el problema de que los atributos no sean accesibles desde el proyecto de referencia.

Andras Balázs Lajtha
fuente
8

descargo la misma demostración personalizada de Android.com y obtengo el mismo problema de compilación.

en primer lugar, cambio

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

a

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

funciona . entonces consigo otra solución

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

También funciona, pero hay algunas diferencias. La segunda solución tiene la función de prefecto. Estoy encontrando la razón, puede ser que puedas echar una mano. Gracias

Cuenta
fuente
" schemas.android.com/apk/res-auto " agrega todos los atributos definidos en su proyecto, así como los definidos en las bibliotecas que hizo referencia en su proyecto. por lo tanto, funciona para usted y su enfoque más limpio
SAIR
3

Como especifica en su attrs.xmlatributo adSize, pertenece al espacio de nombres com.google.ads.AdView. Trata de cambiar:

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

a

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

y debería funcionar

Pensilvania
fuente
@FranciscoCorralesMorales lo agregué pero aún no funciona
Sagar Devanga
3

Recibí este error con respecto al atributo largeHeap, mi aplicación no se ejecutó bajo eclipse, pero bajo hormiga aún se compiló y ejecutó normalmente.

La documentación de Android establece que:

xmlns: android

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

Borré esa línea en mi manifiesto, guardado en eclipse, pegué la línea nuevamente y guardé nuevamente, y funcionó. En mi caso, supongo que el problema era eclipse, ant y adb no se hablaban correctamente y el ahorro restablecía algo. Curiosamente, reiniciar el eclipse no resolvió este problema (por lo general, con este tipo de problemas, reiniciar el eclipse es lo primero que debe intentar y, por lo general, resuelve el problema).

tjb
fuente
Gracias a esto, el cambio de "xmlns:" url me salvó :)
songyy
Tengo una pregunta admob: stackoverflow.com/questions/36389729/…
Ruchir Baronia
2

Asegúrese de haber incluido esta parte en su diseño (arriba xmlns: línea de Android)

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

Compruebe también si ha incluido attrs.xml en res / values ​​/

Consulta aquí para más detalles. http://code.google.com/mobile/ads/docs/android/banner_xml.html

Kabilan
fuente
1

Según la respuesta aquí , creo que debe cambiar el atributo xmlns: ads. Por ejemplo, cambie esto:

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

a esto:

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

Me lo arregló. Si todavía recibe errores, ¿podría dar más detalles?

maestro de ceremonias
fuente
1

Por lo general, inserto la propiedad xmlns: ads en las propiedades adview de esta manera:

<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 no necesite incrustar en el padre cada vez que copie la vista de anuncio.

Simplemente copie y pegue la vista anterior y péguela en cualquier lugar y debería funcionar

MBH
fuente
1

He estado buscando respuesta pero no pude encontrar, pero finalmente pude solucionar esto agregando play-service-adsdependencia intentemos esto:

*) Archivo -> Estructura del proyecto ... -> En el módulo puede encontrar la aplicación y hay una opción llamada dependencias y puede agregar com.google.android.gms: play-services-ads: dependencia xxx a su proyecto

Me enfrenté a este problema cuando intento importar proyectos de Eclipse en Android Studio.

Imagen

HashanR
fuente
1

En mi caso, me faltaba una dependencia en el nivel de aplicación build.gradle.

La solución fue agregar la dependencia como se describe a continuación en Google:

Abra el archivo build.gradle de nivel de aplicación para su aplicación y busque una sección de "dependencias".

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

Agregue la línea anterior, que le indica a Gradle que obtenga la última versión del SDK de Mobile Ads y dependencias relacionadas adicionales. Una vez hecho esto, guarde el archivo y realice una sincronización de Gradle.

smitty1
fuente
0

También enfrenté el mismo problema, lo estaba usando y GoogleAdMobAdsSDK-4.1.0.jarluego lo intenté, GoogleAdMobAdsSDK-4.0.4.jarahora funciona bien, es un problema con el archivo jar según mi experiencia.

vicky
fuente
0

Tuve un problema similar en MonoDroid al construir una biblioteca de clases con archivos Drawables y Layouts que tienen "android:"atributos en el xml. Me sale un error similar al de la pregunta.

No se encontró un identificador de recurso para el atributo 'textCursorDrawable' en el paquete 'android'

Descubrí que el atributo "android:" solo está disponible en el nivel 12+ de la API de Android y estaba intentando compilar para una versión anterior. Actualizar mi proyecto para compilar contra Android 4.0 solucionó el problema para mí. Aquí es donde encontré la respuesta. https://groups.google.com/forum/?fromgroups#!topic/android-developers/ocxKphM5MWM Solo asegúrese de estar compilando contra el nivel API correcto si tiene un problema similar, y asegúrese de que el identificador faltante exista en ese nivel de API contra el que se construye.

Tiene AlTaiar
fuente
0

simplemente cambie el SDK de destino, haga clic derecho en el proyecto y luego haga clic en la propiedad, seleccione Android y seleccione la última API

Shaikh Sohail
fuente
0

Me estaba ocurriendo el mismo error en el archivo "activity_banner_xml.xml" dentro de la carpeta res / layout. Lo que hice para arreglarlo fue reemplazar

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

con

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

No hubo referencias al nombre de mi paquete. Además, asegúrese de establecer el adUnitId para ads:adUnitId="@string/banner_ad_unit_id"> El ID de la unidad de agregar se encuentra en su carpeta res / Values ​​/ Strings.

Entonces mi archivo de diseño final se ve así:

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

Si el suyo es un proyecto de gradle, reemplace:

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

con:

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

Estoy agregando la solución que funcionó para mí para este mismo error.

Hice clic derecho en proyecto> propiedades> (panel izquierdo) Android

Panel derecho debajo de LibraryQuité la biblioteca defectuosa y la agregué nuevamente.

Para mí, este error ocurrió después de un archivo de eclipse de espacio de trabajo corrupto donde tuve que importar todos los proyectos nuevamente.

Onimusha
fuente
0

Mi problema fue muy similar (produce el mismo problema). Después de refactorizar el nombre de la variable por la opción "refactor -> rename" en Android Studio (de "valor" a "myValue") también encontré cambios en el archivo de manifiesto. El grupo de "valor" de metadatos ha cambiado a "myValue".

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

Después de revertir el archivo, todo parece estar bien nuevamente.

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

¡Espero que ayude a alguien!

Adrian Grygutis
fuente
0

Agregue xmlns: ads = "http://schemas.android.com/apk/lib/com.google.ads" , esto resolverá su 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
fuente
0

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

luego reconstruir proyecto

Shubhamhackz
fuente
0

Agregué en android.support.design.widget.NawigationVer este parámetro:

android:layout_gravity="start"

Y el problema fue resuelto.

Bombey77
fuente
-2

PONGA las compile 'de.hdodenhof:circleimageview:2.0.0' dependencias de Gradle y coloque este código en 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
fuente