Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Módulo Gradle y submódulo git

Tengo un proyecto de biblioteca llamado toolkit con dos módulos core y database , con esta configuración:

Settings.gradle

 include ':core' include ':database' 

Core build.gradle

 dependencies { compile 'com.android.support:support-v4:20.+' compile 'com.jakewharton:butterknife:5.1.+' compile 'com.google.code.gson:gson:2.2.+' compile 'uk.co.chrisjenx:calligraphy:0.7.+' compile files('libs/flurry-3.4.0.jar') } 

Base de datos build.gradle

 dependencies { compile project(':core') } 

It `s ok cuando ejecutar mis pruebas en este proyecto de biblioteca, pero quiero añadir esta biblioteca como un submódulo git en otro proyecto, este proyecto tiene la siguiente configuración:

Settings.gradle

 include ':app-tablet' include 'libraries:float-hint' include 'libraries:toolkit:core' include 'libraries:toolkit:database' include 'libraries:twoway-view:TwoWayView' 

App build.gradle

 dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' compile 'com.google.android.gms:play-services:+' compile 'com.j256.ormlite:ormlite-android:4.48' compile 'com.jayway.android.robotium:robotium-solo:5.2.1@jar' compile 'com.squareup.dagger:dagger:1.2.+' compile 'com.squareup.picasso:picasso:2.1.1@jar' compile files('libs/YouTubeAndroidPlayerApi.jar') compile project(':libraries:float-hint') compile project(':libraries:porquenao-toolkit:core') compile project(':libraries:porquenao-toolkit:database') compile project(':libraries:twoway-view:TwoWayView') } 

Y cuando intento compilar consigo el siguiente:

 $ gradlew assembleDebug -d 12:10:46.283 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] 12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] * Where: 12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] Build file '/path/libraries/toolkit/database/build.gradle' line: 16 12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] 12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] A problem occurred evaluating project ':libraries:toolkit:database'. 12:10:46.287 [ERROR] [org.gradle.BuildExceptionReporter] > Project with path ':core' could not be found in project ':libraries:toolkit:database'. 12:10:46.308 [ERROR] [org.gradle.BuildExceptionReporter] ... more 12:10:46.308 [LIFECYCLE] [org.gradle.BuildResultLogger] 12:10:46.308 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED 

Sé que el problema se trata de caminos :core y las libraries:toolkit:core pero ¿cómo resolver esto adecuadamente?

  • La mejor manera de ejecutar pruebas rápidas de JUnit en un proyecto Android en Android Studio
  • No se puede resolver el símbolo 'AppCompatActivity'
  • Biblioteca binaria preconfigurada nativa en Android Studio con el complemento experimental de Gradle
  • Android Studio 3.0 Beta 1: Error al resolver: com.android.support:multidex:1.0.2
  • Configuración de un directorio de activos personalizados para las pruebas unitarias en Android Studio
  • Android Studio Sigue diciendo No se pudo completar la ejecución de Gradle
  • Android Gradle: cambia dinámicamente versionName en tiempo de compilación
  • Android Studio: Gradle Product Flavors: Definir propiedades personalizadas
  • One Solution collect form web for “Módulo Gradle y submódulo git”

    Tiene un problema de nomenclatura en sus archivos de gradle de aplicaciones.

    El settings.gradle tiene:

    include 'libraries:toolkit:core'

    Y el build.gradle tiene:

     compile project(':libraries:porquenao-toolkit:core') 

    Suponiendo que arreglar esto, todavía tendrá un error.

    El módulo de base de datos intentará compilar ": core" , pero cuando se utiliza en la aplicación, el módulo central tiene una ruta de acceso diferente: ": libraries: porquenao-toolkit: core"

    Una forma de evitar esto es incluir la biblioteca central como ": core" en ambos proyectos, pero darle una ruta de proyecto diferente.

    Sus archivos settings.gradle se verían así:

    Juego de herramientas:

     include ':core' project(':core').projectDir = new File(rootDir, 'core') 

    App:

     include ':core' project(':core').projectDir = new File(rootDir, 'libraries/porquenao-toolkit/core') 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.