2011-02-11 7 views
26

Intenté incluir admob en una aplicación de Android en Eclipse. Pero me sale un error en el layout.xml. Eclipse me dice que com.admot.android.ads.AdView es un prefijo independiente. Tengo la biblioteca admob incluida en la ruta de compilación, siguiendo las instrucciones en pdf. Pero todavía no parece encontrar la clase AdView. ¿Pero por qué?com.admob.android.ads.AdView prefijo unbound?

Este es el diagrama que produce el error:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/renegrothmann.kalah" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    > 

      <renegrothmann.kalah.GameView 
       android:id="@+id/gameView" android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_margin="2px" 
       /> 

      <com.admob.android.ads.AdView 
       android:id="@+id/ad" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       myapp:backgroundColor="#000000" 
       myapp:primaryTextColor="#FFFFFF" 
       myapp:secondaryTextColor="#CCCCCC" 
       /> 

</LinearLayout> 
+0

¿Escribió el error 'com.admot.android.ads.AdView'? Porque debería ser admob en lugar de admot – Nanne

+0

@Nanne: Sí, escribí eso, por lo que el tipo es mío. No tengo idea de cómo vincular esa vista de AdView aparte de agregar la biblioteca. Si ayuda: importé la biblioteca y agregué la biblioteca interna como se describe en los documentos. – Rene

+2

Rene. No ha incluido el espacio de nombres admob. Esto es obligatorio, no es opcional. También noté que usa la etiqueta com.admob.android.ads.Adview. No estoy seguro de que sea un nombre de etiqueta anterior o de que haya un error en la documentación que tiene. Pruebe la etiqueta com.google.ads.AdView en su lugar. Además, vea mi respuesta a continuación. – n4rzul

Respuesta

0

tal vez debería reemplazar "miaplicacion" en la parte inferior con la "aplicación" o reemplazar "xmlns: App" en la parte superior con "xmlns: miaplicacion". Probablemente deberían ser lo mismo.

0

No puedo proporcionar una respuesta real, ya que en realidad no sé, por qué funciona ahora. Lo que hice: reinicié con un nuevo proyecto. ¡A veces, simplemente das un paso equivocado!

90

que tenían el mismo ingenio error de este diseño

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/topLayout" 
>   
    <!-- Ad Placeholder --> 
    <com.google.ads.AdView  
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ads:adUnitId="a14df07c16f171a" 
     ads:adSize="BANNER" 
     ads:loadAdOnCreate="true" 
    /> 

</RelativeLayout> 

Entonces me hizo:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/topLayout" 
>   
    <!-- Ad Placeholder --> 
    <com.google.ads.AdView  
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     ads:adUnitId="a14df07c16f171a" 
     ads:adSize="BANNER" 
     ads:loadAdOnCreate="true" 
    /> 

</RelativeLayout> 

Aviso el segundo xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" en mi RelativeLayout en el segundo ejemplo?
De hecho, si elimina la declaración de espacio de nombres de Android xmlns:android="http://schemas.android.com/apk/res/android", comenzará a gemir sobre todos los componentes de Android también.

+2

Esto me solucionó exactamente el mismo problema; gracias. – mikebabcock

+0

Gracias por la sugerencia. Uso lo que está en el documento más reciente de Google: xmlns: ads = "http://schemas.android.com/apk/res-auto". Funciona también – Hong

5

cambiar los siguientes

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/renegrothmann.kalah" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

por

<LinearLayout 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/renegrothmann.kalah" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

para mí es trabajar con

<TableLayout 
    android:id="@+id/resultsuperlotto" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" /> 

Salud!

0

Haga clic derecho en su proyecto, haga clic en Propiedades, haga clic en Android, en el panel Biblioteca, haga clic en el botón Añadir y añadir tanto google-play-services_lib y appcompat_v7 bibliotecas aplican, Actualizar, Limpio del Proyecto.

Si esto no funciona, intente lo siguiente:

  • Cambiar la línea de meta en project.properties como target = android-13
  • Haga clic derecho sobre el proyecto y haga clic en Actualizar
  • Haga clic en Limpiar en el proyecto

Espero que esto funcione.

0

En realidad, no necesita agregar xmlns:ads a un elemento raíz (o un elemento principal).

Usted puede simplemente añadir xmlns:ads propiedad a su elemento AdView, como:

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

Comprobar this page.