Pregunta

Esta es una pregunta de dos partes sobre la adición de una biblioteca de terceros (JAR) para un proyecto de Android en Eclipse.

La primera parte de la pregunta es, cuando intento agregar un JAR de terceros (biblioteca) para mi proyecto Android primera vez que consigo el problema de

  

Error al analizar XML: Sin consolidar prefijo

porque estoy tratando de utilizar una clase de esa JAR (y necesita el prefijo de alguna forma definida). ¿Qué está pasando?

En segundo lugar, (después de la fijación que - la respuesta se da a continuación), mi aplicación no funciona en Android y descubrir a través del depurador (LogCat) que la clase que estoy tratando de consumir no existe <. / p>

  

Causado por:   java.lang.ClassNotFoundException:   com.github.droidfu.widgets.WebImageView ...

¿Por qué, cuando llegue a ningún error de compilación o enlazador en Eclipse, ¿tiene este problema en el emulador?

Estas dos preguntas son retóricas porque yo voy a contestar yo mismo a continuación. Otros mensajes en este foro fluencia hasta el problema y en otros lugares hay una discusión, pero me siento que puedo ser más explícita útiles para el tipo de al lado para venir adelante.

¿Fue útil?

Solución

Ahora para el problema de la clase faltante.

Soy un desarrollador de Eclipse Java EE y he tenido la costumbre de muchos años de la adición de las bibliotecas de terceros a través del mecanismo de "usuario de la biblioteca" en Build Path. Por supuesto, hay por lo menos 3 formas de agregar una biblioteca de terceros, el que yo uso es el más elegante, en mi humilde opinión.

Esto no funciona, sin embargo, para Android, cuya Dalvik "JVM" no puede manejar una clase compilada en Java común, pero debe tenerlo convierte a un formato especial. Esto no sucede cuando se agrega una biblioteca en la forma en que estoy acostumbrado a hacerlo.

En su lugar, siga las instrucciones (ampliamente disponibles) para la importación de la biblioteca de terceros, a continuación, añadir que el uso de Build Path (que lo da a conocer a Eclipse para fines de compilación). Aquí está el paso a paso-:

  1. Descargar la biblioteca a su anfitrión sistema de desarrollo.
  2. Crear una nueva carpeta, libs , en su proyecto Eclipse / Android.
  3. Haga clic en libs y elija Importación -> General -> archivos de sistema, entonces A continuación, en Examinar en el sistema de archivos para encontrar los padres de la biblioteca directorio (es decir, donde .: descargado a).
  4. Haga clic en Aceptar, a continuación, haga clic en el nombre del directorio (no la casilla de verificación) en el panel de la izquierda, a continuación, comprobar la JAR pertinentes en el panel derecho. Esta la biblioteca pone a su proyecto (Físicamente).
  5. Haga clic derecho en su proyecto, elegir Build Path -> Configurar Construir Ruta de acceso, haga clic en la pestaña Bibliotecas, Añadir a continuación, JAR ..., vaya a su JAR nuevo en el libs directorio y añadirlo. (Esto, por cierto, es el momento en que se convierte en su nuevo JAR para su uso en Android.)

NOTA

Paso 5 puede no ser necesario, si el lib ya está incluido en la ruta de compilación. Sólo asegúrese de que su existencia primero antes de añadir.

Lo que has hecho aquí se logran dos cosas:

  1. Incluye un JAR Dalvik-convertida en su proyecto Android.
  2. Hace que las definiciones de Java disponibles Eclipse a fin de encontrar el clases de terceros en el desarrollo (es decir, la compilación) código fuente del proyecto.

Otros consejos

Asegúrese de que los frascos de 3 ª parte están en sus proyectos carpeta "libs" y serán puestos en el apk al empaquetar su aplicación. Es posible que vea errores de ejecución en el dispositivo si no se admite algo en el frasco, pero aparte de eso he tenido un gran éxito con esto.

La creación de un proyecto de Biblioteca

Un proyecto de la biblioteca es un proyecto estándar de Android, por lo que puede crear uno nuevo de la misma manera como lo haría con un nuevo proyecto de aplicación.

Al crear el proyecto de biblioteca, se puede seleccionar cualquier nombre de la aplicación, paquete, y fijar otros campos, según sea necesario, como se muestra en la figura 1.

A continuación, establezca las propiedades del proyecto para indicar que se trata de un proyecto de biblioteca:

En el Explorador de paquetes, haga clic en el proyecto de la biblioteca y seleccione Propiedades. En la ventana Propiedades, seleccione el grupo de propiedades "Android" a la izquierda y localizar las propiedades de la biblioteca a la derecha. Seleccione la casilla de verificación "es la biblioteca" y haga clic en Aplicar. Haga clic en Aceptar para cerrar la ventana Propiedades. El nuevo proyecto ahora está marcado como un proyecto de biblioteca. Puede comenzar a mover el código fuente y los recursos en ella, como se describe en las secciones a continuación.

Si está utilizando la versión de ADT 22, es necesario comprobar las dependencias androide y bibliotecas privadas Android en el orden de tabulación y Exportación de la trayectoria de la estructura del proyecto

En primer lugar, el problema de la falta de prefijo.

Si usted consume algo en su archivo de diseño que proviene de un tercero, puede que tenga que consumir su prefijo, así, algo así como "droidfu:" que se produce en varios lugares en la construcción XML siguiente:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

Esto viene de la jarra, pero también tendrá que añadir los nuevos "xmlns: droidfu"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

o aparece el error prefijo unido. Para mí, esto fue un fracaso para copiar y pegar todos el ejemplo suministrado desde las páginas de la biblioteca de terceros.

  

Error al analizar XML: Sin consolidar prefijo

     

Recursos '/ playteddy / res' no existe.

Tengo lo anterior dos errores y, finalmente, lo resolví.

Haga clic derecho en su proyecto -> propiedades -> Java Build Path -> googleadmobadsdk (seleccionar y ponerlo encima), entonces se corre y problema resuelto. Se resolvió mi error de ejecución.

Poner la fuente en un espacio de trabajo carpeta fuera yourt. Haga clic derecho en el proyecto-Explorer y seleccione "Importar ..."

Importar el proyecto en su área de trabajo como un proyecto Android. Tratar de construirlo, y asegúrese de que está marcado como un proyecto de biblioteca. También asegúrese de que es de construcción con el apoyo de la API Google, si no se producirán errores de compilación.

A continuación, en el botón derecho del ratón en su principal proyecto en el Explorador de proyectos. Seleccione propiedades, a continuación, seleccione Android a la izquierda. En la sección de la biblioteca a continuación, haga clic en "Añadir" ..

La biblioteca MapView-globos debería estar disponible para agregar a su proyecto ..

Ir a la ruta de compilación en eclipse, a continuación, en el orden y la exportación, a continuación, comprobar la biblioteca / frasco y, a continuación, haga clic en el botón de arriba para moverlo a la parte superior de la lista para compilar primero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top