En eclipse, no se puede hacer referencia a un proyecto de biblioteca de Android en otro proyecto de Android

Mientras escribía esta pregunta, logré resolverla, así que repítala aquí para beneficio de los demás. Aquí está el problema inicial:

He creado un proyecto de biblioteca muy simple al que quiero hacer referencia en otro proyecto. He hecho esto previamente sin problemas, así que no estoy seguro de por qué no está funcionando esta vez. Yo tengo:

  1. Marcó el proyecto de la biblioteca a través de las propiedades del proyecto. El archivo default.properties tiene este conjunto: android.library=true

  2. En mi otro proyecto, añadí una referencia a mi proyecto de biblioteca a través de las propiedades del proyecto. El archivo default.properties tiene la referencia añadida como se esperaba, es decir, android.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. La marca verde contra el proyecto de la biblioteca a la que se hace referencia comienza en verde y luego cambia a una cruz roja.

Esto implica que debe haber algo mal / faltante en el proyecto de la biblioteca, pero no sé qué. Mi proyecto de biblioteca en esta ocasión es MUCHO más simple que el anterior que creé.

OK Esta es la solución que encontré cuando buscaba el archivo default.properies del proyecto de referencia (no la biblioteca) en mi sistema de archivos. Aunque el proyecto de referencia estaba en el mismo espacio de trabajo de eclipse que el proyecto de biblioteca, los archivos reales estaban en otro lugar del sistema de archivos, es decir, no estaban en la misma carpeta primaria del proyecto de biblioteca. Tan pronto como coloqué el proyecto de referencia en la misma carpeta física que el proyecto de la biblioteca, todo salió bien.

Supongo que esto debe ser algo relacionado con Android usando una ant debajo de las sábanas.

Editar: El nombre del proyecto necesita coincidir con el nombre de la carpeta en el sistema de archivos. Lo que está viendo en Project Properties-> Android-> Library Reference es una ruta relativa al sistema de archivos.

Asegúrese de que ambos proyectos estén presentes en el mismo espacio de trabajo. Para hacerlo, al importar los proyectos, asegúrese de que la checkbox “copiar proyecto en el espacio de trabajo” esté marcada.

el mismo problema ocurrirá si su proyecto de biblioteca está en una partición diferente de su espacio de trabajo actual. Tengo el mismo problema ahora. Mi fuente git está en C: y simplemente muevo mi espacio de trabajo a D: y todo comienza a colapsar.

La forma más sencilla de corregir las rutas de las rutas de la biblioteca es usar la GUI de Eclipse para agregar la biblioteca como se muestra en la siguiente captura de pantalla y dejar que Eclipse se encargue de ubicar las rutas relativas correctas en project.properties. Es una configuración común para tener sus proyectos de biblioteca alojados en directorios muy diferentes a sus proyectos principales que utilizan la biblioteca. Este método funcionará si el “proyecto de la biblioteca” y el proyecto que lo usa están en el mismo “espacio de trabajo” del eclipse (“no necesitan” estar en la misma carpeta principal): enter image description here

Asegúrese de que el proyecto de la biblioteca esté marcado como “Es Biblioteca” – haga clic con el botón derecho en el proyecto de la biblioteca – Propiedades – Android – marque la casilla “Es Biblioteca” – en project.properties del proyecto de la biblioteca debe tener una nueva entrada: “android .library = true. Ahora agrégalo al proyecto que quieras, como se describe en la publicación a continuación. (la publicación con la imagen integrada – de Nilesh Pawar).

Este error se hace referencia varias veces aquí 27199 , 35786 , 36460 y 38052

Tal vez votando por ellos, se arreglará un día …

Otra observación más sobre el mismo tema.

Para mí, los dos proyectos estaban en la misma carpeta principal, y ambos eran locales dentro del espacio de trabajo. Incluso entonces, el problema todavía estaba sucediendo.

El edité el archivo “project.properties” y puse la ruta absoluta (con barras diagonales ‘/’ para el separador) del proyecto de la biblioteca. Guardado y cerrado. Luego fui al cuadro de diálogo de propiedades del proyecto, eliminé la biblioteca (que aún mostraba el ícono cruzado pero con una ruta ABS) y la agregué nuevamente como de costumbre. Sorprendentemente, el problema se resuelve y el proyecto se comstack y ejecuta.

Esto es realmente extraño y debe ser un error con el ADT. Estoy usando la versión 20.0.2 de ADT

cuando el desarrollador hace referencia al facebook o cualquier otro proyecto de la biblioteca, primero limpie el proyecto de eclipse-> proyecto-> proyecto limpio. que quiere permitir el error de cruz roja en la pantalla de referencia.

Para mí, simplemente reinicio el eclipse y la biblioteca agregada funciona bien.

Me refiero a la primera vez que muestra marcas rojas después de agregar el proyecto de la biblioteca. Aunque el proyecto principal de eclipse y el proyecto de biblioteca se encuentran en la misma carpeta de espacio de trabajo y no hay archivos de recursos en la parte exterior de la carpeta del proyecto.

Entonces, puedes intentar reiniciar tu eclipse. Feliz encoding …

La solución para mí fue

  1. Crear un nuevo espacio de trabajo
  2. Importar proyecto de biblioteca en ese espacio de trabajo
  3. Importar el proyecto deseado en ese espacio de trabajo
  4. Tener proyecto y proyecto de biblioteca con la misma versión del sistema operativo Android
  5. Proyecto de biblioteca de referencia en mi proyecto

resuelto mi problema

Tuve el mismo problema cuando trato de cambiar mi espacio de trabajo, así que esta es mi solución:

  1. importar y copiar todos los datos del proyecto, incluido el proyecto de la biblioteca en el espacio de trabajo
  2. borre la referencia del proyecto anterior haciendo clic derecho en el proyecto -> Propiedades -> Android -> Biblioteca, y seleccione la biblioteca dañada (para que así lo llame) y elija Eliminar
  3. limpiar el proyecto primero (para actualizar las propiedades de tu proyecto)
  4. vaya a las propiedades del proyecto de la biblioteca -> Android -> Biblioteca y compruebe la biblioteca si no hace clic en Aplicar y luego en Aceptar
  5. si el proyecto de la biblioteca es que la biblioteca ya está marcada, primero desactívela y luego Limpiar el proyecto de la biblioteca después de eso haga el Paso 4 de nuevo
  6. Vaya al proyecto en el que desea que se encuentre la biblioteca Haga clic con el botón derecho en el proyecto -> Propiedades -> Android -> Biblioteca, agregue y luego elija el proyecto de la biblioteca (debe estar allí) y haga clic en Aplicar y luego en Aceptar
  7. si todavía no parece limpiar el proyecto una vez más y eso debería hacer

Simplemente reinicia tu eclipse. Es resolver mi problema

Cuando mira la ruta de referencia antes y después, proviene de, por ejemplo, “C: / workspace / mylib” y va a “../../mylib” cuando se copia en la ubicación correcta, bastante interesante.

FYI,

Lo que funcionó para mí fue eliminar los proyectos de ‘biblioteca’ (los proyectos reales) de mi espacio de trabajo (sin eliminar los archivos), y luego volver a importarlos usando el asistente (importar un proyecto de Android desde el código fuente).

Gracias por publicar la pregunta. Tuve exactamente el mismo problema al integrar Facebook con mi aplicación de Android. Solucioné el problema moviendo mi proyecto de desarrollo a la misma unidad de Windows en la que se encontraba el proyecto de la biblioteca. De alguna manera, Eclipse no puede leer correctamente la ubicación del proyecto de la biblioteca desde el archivo default.properties si está en una unidad diferente.

Similar a la publicación de Sufi Khan también resolví este problema con un reinicio. Mi caso difería en que cuando accedí por primera vez a Propiedades-> Android y agregué la biblioteca obtuve una encantadora marca verde. Cuando cerré el diálogo, Eclipse seguía mostrando errores de tipo de clase no encontrada. Cuando revisé las propiedades nuevamente, vi la X roja. Pero la solución del Sr. Kahn (eliminar la lib mala, reiniciar Eclipse, agregar la lib nuevamente) funcionó bien.

Estoy usando la versión 0702 del paquete ADT (comienza con “clúster”, rima con “pato”).

Seguí la respuesta aceptada, pero también tuve que asegurarme de que mi archivo “project.properties” fuera legible.

Si el archivo es de solo lectura (marcado en el control de la fuente) eclipse no lo editará. Agregar la referencia de la biblioteca tendrá éxito, pero el cambio no se mantendrá después de presionar OK.

Si cierra la ventana de preferencias y vuelve a abrir, se elimina la biblioteca que acaba de agregar, esta puede ser su solución.

En caso de que su proyecto de biblioteca aún no aparezca intente agregar el indicador de biblioteca en las propiedades de proyecto de su biblioteca

Agregar android.library = true

project.properties

 # This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android-17 android.library=true