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


Mientras escribía esta pregunta me las arreglé para resolverla, así que repítela aquí para el 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 anteriormente sin problemas, así que no estoy muy seguro de por qué no está funcionando esta vez. Tengo:

  1. Marcado del 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 se agregó 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 espera ie android.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. La marca verde contra el proyecto de biblioteca referenciada comienza en verde y luego cambia a una cruz roja.

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

Author: Laurent.B, 2011-03-02

18 answers

OK Aquí está la solución que encontré cuando estaba buscando el valor predeterminado.archivo de propiedades del proyecto de referencia (no de 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 padre 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.

I supongo que esto debe ser algo que ver con Android usando ant debajo de las cubiertas.

Editar: El nombre del proyecto debe coincidir con el nombre de la carpeta en el sistema de archivos. Lo que está viendo en las Propiedades del proyecto->Android->Referencia de biblioteca es una ruta relativa del sistema de archivos.

 159
Author: malcooke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-01 09:22:04

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 casilla de verificación" copiar proyecto en el espacio de trabajo " esté marcada.

 11
Author: Karthik Dheeraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-25 11:09:56

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

 10
Author: user791129,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-09 09:35:43

La forma más sencilla de corregir las rutas de acceso de la biblioteca es usar la interfaz gráfica de Eclipse para agregar la biblioteca como se muestra en la siguiente captura de pantalla y dejar que Eclipse se encargue de colocar las rutas relativas correctas en el proyecto.propiedad. Es una configuración común para tener sus proyectos de biblioteca alojados en directorios muy diferentes de sus proyectos principales que utiliza la biblioteca. Este método funcionará si el "proyecto libary" y el proyecto que lo usa están en el mismo "espacio de trabajo" de eclipse (no es necesario que estén en misma carpeta principal): introduzca la descripción de la imagen aquí

 4
Author: Nilesh Pawar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-22 10:58:30

Por favor, asegúrese de que el proyecto de la biblioteca está marcado como "Is Library" - haga clic derecho en el proyecto de la biblioteca - propiedades - Android - marque la casilla de verificación "Is Library" - en el proyecto.propiedades del proyecto de biblioteca debe tener una nueva entrada: "android.library = true. Ahora agrégalo en el proyecto que deseas como se describe en la siguiente publicación.(el post con imagen integrada - de Nilesh Pawar).

 3
Author: Alexandru Circus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 13:00:31

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

Tal vez votando por ellos, se fija un día...

 3
Author: Laurent.B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-23 09:46:25

Otra observación sobre el mismo tema.

Para mí los dos proyectos estaban en la misma carpeta padre, y ambos eran locales dentro del espacio de trabajo. Incluso entonces el problema seguía ocurriendo.

El edité el " proyecto.propiedades "archivo y poner la ruta absoluta (con barras' / ' para seperator) del proyecto de la biblioteca. Guardado y cerrado. Luego fue al diálogo de propiedades del proyecto, eliminó la biblioteca (que todavía mostraba el icono de la cruz pero con la ruta abs) y agregó vuelve como siempre. Sorprendentemente, el problema se resuelve, y el proyecto se compila y se ejecuta.

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

 2
Author: CuriousChettai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-14 08:10:55

Cuando el desarrollador hace referencia a Facebook o a cualquier otro proyecto de biblioteca, primero limpie el proyecto de eclipse->proyecto->proyecto limpio. que quieren permitir el error de cruz roja en la pantalla de referencia.

 2
Author: jayesh jethava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-24 12:49:04

Para mí, solo 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 eclipse main project y library project están en la misma carpeta del espacio de trabajo y no hay archivos de recursos fuera de la carpeta del proyecto.

Por lo tanto, puede intentar reiniciar su eclipse. Feliz codificación....

 2
Author: Md Sufi Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-10 08:45:52

Solución para mí fue

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

Resuelto mi problema

 1
Author: QAMAR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-18 16:17:52

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

  1. importe y copie todos los datos del proyecto, incluido el proyecto de biblioteca, en workspace
  2. elimine la referencia del proyecto anterior haciendo clic con el botón derecho en el proyecto Library>Propiedades Android>Android Library > Biblioteca, y seleccione biblioteca dañada (para que la llame) y elija Eliminar
  3. limpie el proyecto primero (para actualizar las propiedades del proyecto ur)
  4. vaya a Propiedades del proyecto de biblioteca Android > Android Library > Biblioteca y compruebe la biblioteca is si no hace clic en Aplicar, entonces OK
  5. si el proyecto de biblioteca es biblioteca ya está marcado, primero Desmarcado, luego Limpie el proyecto de biblioteca después de hacer el Paso 4 nuevamente
  6. vaya al proyecto en el que desea que se encuentre la biblioteca, haga clic con el botón derecho en el proyecto project > Propiedades Android > Android Library > Biblioteca, Agregue luego elija el proyecto de biblioteca (debería estar allí) y haga clic en Aplicar y luego OK
  7. si todavía no aparece limpio el proyecto una vez más y eso debería hacer
 1
Author: ibrahim saputra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-08 22:28:14

Simplemente reinicie su eclipse. Es resolver mi problema

 1
Author: Manisha Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-25 12:59:23

Cuando echas un vistazo a la ruta de referencia antes y después, viene de i. e. "C:/workspace/mylib" y va a"../../ mylib " cuando se copia a la ubicación correcta, bastante interesante.

 0
Author: Sebastian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-06 08:29:16

PARA SU información,

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

 0
Author: JRun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-10 14:57:17

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

 0
Author: Girish K Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-11 01:34:56

Similar al post 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 hermosa marca de verificación verde. Cuando cerré el diálogo Eclipse todavía mostraba 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 "cluster", rima con "duck").

 0
Author: William T. Mallard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-08 18:53:42

Seguí la respuesta aceptada, pero también tuve que asegurarme de que mi "proyecto".propiedades " el archivo era legible.

Si el archivo es readonly (registrado en el control de código fuente) eclipse no lo editará. Agregar la referencia de biblioteca tendrá éxito, pero el cambio no se persistirá después de presionar Aceptar.

Si al cerrar la ventana de preferencias y volver a abrirla elimina la biblioteca que acaba de agregar, esta puede ser su solución.

 0
Author: repkap11,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-21 17:08:47

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

Añadir android.library = true

proyecto.propiedades

# 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
 0
Author: HimalayanCoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-07 12:59:06