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ó.


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.


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


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



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.


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


" 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


@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).


Gracias a esto, el cambio de "xmlns:" url me salvó :)
songyy



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?


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


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


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.


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.


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.


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


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


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"

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.


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!


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>

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


0

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

android:layout_gravity="start"

Y el problema fue resuelto.



-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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.