Proyecto Android Eclipse, ¿cómo hacer referencia a la biblioteca dentro del espacio de trabajo?

Seguí algunos pasos que encontré aquí (no puedo encontrar la URL en este momento, lo siento) para convertir mi proyecto de Android en Eclipse a un diseño donde el 99.9% de mi código está en un proyecto de biblioteca, y luego tengo otros 2 proyectos de shell bajo el mismo espacio de trabajo que son principalmente los archivos AndroidManifest.xml y algunos archivos de recursos. Esto se hizo para que yo pueda admitir 2 comstackciones del mismo proyecto, con solo algunos cambios menores de texto / icono entre los 2. El nombre de la aplicación también es diferente, así que puedo publicar ambos en Android Market al mismo tiempo.

Desde que hice esto, cada 10 veces que compilo, tal vez una vez por día o dos, aparece “dalvik error 1” y algo sobre “Access ya existe” (Access es el nombre de la primera unidad Java en mi proyecto de biblioteca) .

Para “solucionar el problema” voy a la ruta de comstackción de Java para mi proyecto auxiliar que estoy tratando de comstackr, y elimino el archivo JAR de mi biblioteca principal de la pestaña de bibliotecas. Entonces puedo construir sin el error.

Luego, un tiempo después (tal vez 1 o 2 días) recibiré un error sobre clases faltantes cuando compile mi proyecto de código auxiliar (no mi biblioteca). Así que volveré a la ruta Java Build y volveré a colocar la referencia al archivo JAR, y todo volverá a funcionar durante 1 o 2 días, luego volveré al mismo error que antes.

¿Es solo un problema conocido y algo que tengo que hacer, o puedo resolverlo mediante una reestructuración de mis proyectos / espacios de trabajo? Actualmente tengo:

Proyecto Lib: solo tiene 2 bibliotecas en la ruta de comstackción: Android 2.1 y com.android.ide.eclipse.adt.LIBRARIES

El primer proyecto stub que usa lib por encima tiene las mismas 2 libs que el proyecto anterior, y a veces uso “Add JAR” para incluir el JAR de la carpeta bin \ del proyecto anterior.

Segundo proyecto de stub: mismas libretas que el primer proyecto de stub

¿Debería hacer referencia al JAR desde mi “proyecto lib” usando una de las otras tabs en las opciones de comstackción? ¿Tal vez la pestaña “Proyecto” en su lugar, o la pestaña “Fuente”? Actualmente no lo tengo en ninguna de esas otras áreas.

Cuando llego al estado extraño, hacer un “proyecto limpio” tampoco ayuda, lo he intentado varias veces y abrí / cerré el IDE entre la limpieza, sin resolver.

En este punto, estamos en las etapas finales de prueba, por lo que mi tarea diaria normal es:

  1. Haga una actualización menor (corrección de errores) en el proyecto LIB

  2. Utilice el asistente de publicación para exportar ambos proyectos y actualizar Android Market y otros lugares donde guardamos los archivos APK.

Así que me gustaría que esos pasos sean simples, sin tener que abrir / cerrar múltiples espacios de trabajo o realizar muchos pasos de comstackción si es posible.

La forma clásica de Eclipse / Java

Agregar una biblioteca (espacio de trabajo)

  • Haga clic derecho en el proyecto en el que desea insertar.
  • Haga clic en Properties .
  • Seleccione Java Build Path .
  • Selecciona la pestaña Libraries .

Ahora, depende de cómo comstacks tu biblioteca. Entonces, haga un Add JARs... o una Add Class Folder . Elija la variante external para usar una fuente externa. Eso es.

Agregar un proyecto de espacio de trabajo

  • Haga clic derecho en el proyecto en el que desea insertar.
  • Haga clic en Properties .
  • Seleccione Java Build Path .
  • Seleccione la pestaña Projects .

Haga clic en Add... en el lado derecho y listo.

La forma adicional de Android

Dos pasos son necesarios:

  • Marque el proyecto que desea usar como proyecto de biblioteca
  • Referencia el proyecto marcado

Marque el proyecto de la biblioteca

Haga clic derecho en su proyecto y seleccione Properties . Seleccione Android a la izquierda y marque la casilla IsLibrary . Hecho.

Referencia el proyecto marcado

Haga clic derecho en su proyecto y seleccione Properties . Seleccione Android a la izquierda y Add... su proyecto marcado. Se agregará a la lista y estará listo para usar. Ahora puede acceder a todas las clases y recursos (por ejemplo, drasables, cadenas) del proyecto referenciado y marcado. Impresionante, ¿eh? 🙂