2010-05-20 14 views
5

Como parte de la aplicación de Android que estoy desarrollando en eclipse, necesito combinar dos paquetes de diferentes proyectos en un solo proyecto. Intenté copiar los archivos en el paquete del segundo proyecto en la carpeta src de la primera carpeta y copié otros archivos necesarios para el segundo paquete en la carpeta res del primer proyecto.Combinación de paquetes de diferentes proyectos en un solo proyecto en eclipse

Pero los archivos de Java autogenerados, es decir, R.java, no se actualizan al copiar. Intenté hacer clic derecho en el proyecto y hacer clic en Herramientas de Android -> Reparar las propiedades del proyecto. Pero nada cambió.

Cualquier sugerencia sobre lo que estoy haciendo mal sería muy apreciada.

Respuesta

4

Preferiría agregar un segundo directorio fuente a través de linked folder.
(Sobre todo porque now support relative path (3.5), como el cuadro siguiente ilustra (3.6 solamente)

alt text http://img411.imageshack.us/img411/1299/dynamicpathvariables.png)


Otra solución consiste simplemente en añadir el segundo proyecto en las "dependencias de proyecto" de la primero.

alt text http://img24.imageshack.us/img24/9511/eclipsebuildpath.png

+0

Así que es imposible convertirlo en un solo proyecto, supongo. – primpap

+0

@primal: podría hacer un solo proyecto, haciendo referencia a ambas carpetas 'src' de los otros dos proyectos a través de la carpeta vinculada. Eso significa volver a crear todas las configuraciones correctas (classpath, dependencias de biblioteca, ...) sin embargo. – VonC

-1

Usted no debería tener que recurrir a la importación o proyectos de referencias cruzadas.

Por lo que yo sé, el archivo R.java se genera a partir de los archivos XML en res.

Específicamente, se crea con base en el "id" en diseños y "nombre" en el archivo strings.xml. (Probablemente haya otras cosas que lo hagan, pero esto es lo que sé).

Tal vez, al copiar sus archivos, sus identificadores no se formateen con el signo "+" que alienta a que se creen los valores si aún no existen.

Por ejemplo, un TextView en un diseño contendría:

<TextView 
    android:id="@+id/author" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

El además de que es crucial para la nueva creación de valores.

También puede ser útil colocar una edición básica en un archivo xml, guardarla, deshacer la edición y guardar de nuevo. El guardado puede activar el plugin de Eclipse para regenerar el archivo R.java.

1

Me encontré con dificultades con el método de VonC produciendo fuerza-cierre noclassdeffounderror en tiempo de ejecución ya que hacer referencia al proyecto externo no hace que la clase esté disponible en tiempo de ejecución. Quizás no estaba haciéndolo correctamente, pero encontré una solución diferente para compartir:

Coloque los dos proyectos que necesita combinar en el mismo espacio de trabajo y ábralos. Establezca un proyecto como biblioteca y haga referencia a la biblioteca en el otro proyecto "principal", como se muestra en: http://developer.android.com/guide/developing/projects/projects-eclipse.html

No olvide declarar las aplicaciones que utiliza del proyecto de biblioteca en el manifiesto del proyecto principal.

Cuestiones relacionadas