Android studio agrega un proyecto externo a build.gradle

Tengo un proyecto de muestra, con la siguiente configuración:

/root + Pure Java Lib + Android Test Lib + Android Test Project 

Donde el ‘ Proyecto de Prueba ‘ depende de ‘ Prueba Lib ‘, y el último depende de ‘ Pure Java LibComstackr el proyecto y ejecutar esta configuración funciona bien.

Ahora estoy pensando en importar mi área de trabajo anterior de Eclipse y trabajar con el estudio de Android, el problema es que la configuración del proyecto es diferente, y me gustaría mantenerlo de esta manera.

por ejemplo, si usar el ejemplo anterior:

 /root + Android Test Lib + Android Test Project /Some Other folder (another repository for example) + Pure Java Lib 

He intentado muchas configuraciones, pero no encontré una forma de referenciar un proyecto fuera del scope de la carpeta principal (‘ raíz ‘ en el caso de ejemplo).

En muchas plataformas / módulos, puede usar ‘..’ para subir de categoría en las carpetas, pero esto no funcionó para mí, tal vez lo he usado mal.

¿Alguien sabe cómo se puede lograr esto con Gradle?

ACTUALIZAR

Trataré de ser más genérico:

 /C:/ /Project A + Module 1 - Pure Java + Module 2 - Android Test Lib + Module 3 - Android Test Project /Project B + Module 1 - Pure Java + Module 2 - Pure Java + Module 3 - Pure Java 

Me gustaría usar el Módulo 1 del proyecto B , en el proyecto A.

Suponiendo que Some Other Folder es un proyecto gradle, podría agregar algo como lo siguiente a su archivo settings.gradle:

 include ':module1' project(':module1').projectDir = new File(settingsDir, '../Project B/Module 1') 

Tienes que poner tu configuración de archivo. Utiliza estas líneas:

 include ':module2' project(':module2').projectDir = new File(settingsDir, '../Project 2/Module2') 

Luego debe agregar su builde.gradle (Módulo: aplicación) en el árbol de dependencias , esta línea:

 compile project(':module2') 

o vaya a Estructura del proyecto > aplicación > Dependencias , haga clic en Agregar , elija 3 Dependencias de módulo y seleccione su módulo

Con Gradle 1.10 (no sé para qué otras versiones será válido) esto es lo que se me ocurrió con base en una respuesta dada aquí http://forums.gradle.org/gradle/topics/reference_external_project_as_dependancy

Tengo un proyecto de biblioteca api, un proyecto de biblioteca común y el proyecto principal de la aplicación. Cada uno es un proyecto de desarrollo independiente y las dos bibliotecas están destinadas a ser compartidas entre múltiples aplicaciones.

En settings.gradle para el proyecto común:

 def apiLibDir = file('../android-api/android-api-lib') def rootProjectDescriptor = settings.rootProject settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir) include ':android-api-lib' 

Luego, en la configuración principal del proyecto de la aplicación.gradle:

 def apiLibDir = file('../android-libs/android-api/android-api-lib') def rootProjectDescriptor = settings.rootProject settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir) include ':android-api-lib' def commonLibDir = file('../android-libs/android-common/android-common-lib') settings.createProjectDescriptor(rootProjectDescriptor, 'android-common-lib', commonLibDir) include ':android-common-lib' 

En cada uno de los archivos build.gradle respectivos, solo los referencia por el nombre que les dio en settings.createProjectDescriptor, como lo haría con cualquier otra dependencia del proyecto:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':android-api-lib') compile project(':android-common-lib') } 

Esto parece funcionar Ni siquiera arrojó un error para varios archivos DEX que definen la biblioteca de API, sospecho porque todo era parte del mismo proceso de comstackción y Gradle fue lo suficientemente inteligente como para resolverlo.

Haga clic derecho en el proyecto – Seleccione “Abrir configuración del módulo” – Seleccione “Módulos” en el panel izquierdo – Haga clic en el símbolo “+” en la parte superior – Elija “Importar módulo”.

Después de importar el Módulo. Debe agregarlo como una dependencia para su proyecto actual.

Mantenga “Módulos” seleccionados en el panel izquierdo y haga clic en su proyecto – Ahora vaya a la pestaña de dependencias y haga clic en el símbolo “+” que se encuentra en la parte inferior – Elija la tercera opción “Dependencias del módulo” y si ha importado su proyecto correctamente, le muestra el módulo disponible que se puede agregar como una dependencia de su proyecto actual.

Repetí esta pregunta de una manera que implica las intenciones de los carteles originales en ¿Cómo hacemos referencia a las bibliotecas personalizadas de Android y Java que viven fuera del directorio de nuestro proyecto principal de Android?

Ahí respondo mi propia pregunta. En el núcleo, mi respuesta utiliza @ Ethan (el autor de la respuesta elegida en el hilo actual) penetración de encoding gradle. Pero mi respuesta también navega por otros problemas y proporciona un ejemplo detallado paso a paso.

Como dijo Ethan, si agrega esto a su settings.gradle, agregará un proyecto externo a Android Studio (en este ejemplo, está en la carpeta principal):

 project(':../ProjectB/:module1') 

Luego, para agregarlo como una dependencia de uno de sus proyectos, simplemente agréguelo en el build.gradle de ese proyecto como otra dependencia como esta (también puede hacerlo gráficamente como aquí ):

 compile project(':../ProjectB/:module1')