2013-08-07 1 views
16

Lors de l'exécution assembleDebug, les tâches liées à la libération des projets auxquels je dépends sont appelés.Android build gradle: assembleDebug en cours d'exécution rend les tâches de libération des dépendances de projet appelés

par exemple. J'ai un projet appelé 'x' qui dépend de 'y'.

Quand je gradle assembleDebug il y appelle: mergeReleaseProguardFiles, packageReleaseAidl, etc ... etc ..

+0

Je suis aussi confus à ce sujet. Vous n'êtes pas arrivé à obtenir cette réponse maintenant (vu que c'était il y a plus d'un an)? Si je construis plusieurs des modules eux-mêmes, comme dans: Modulea: assembleDebug,: moduleB: assembleDebug la seule tâche liée à la libération est preReleaseBuild (qui, pour une raison quelconque, fait partie de assembleDebug ce qui devrait être normal), mais quand je fais: Modulex : assembleDebug (qui dépend du moduleA/B) beaucoup de tâches de release sont appelées, comme vous l'avez expérimenté. La raison pour laquelle je m'en soucie est parce que cela semble rendre buildTypes {release {runProguard vrai étant utilisé ce que je ne veux pas pour la construction de débogage. – riper

+0

Oui, n'a jamais eu une réponse :) – Guy

+0

cela se produit pour tout fichier de construction (dire la création d'un nouveau projet vierge dans Android Studio) ou est-ce uniquement avec des fichiers de construction spécifiques? Si ce dernier, s'il vous plaît modifier votre question et ajouter des détails. De même, comment déterminez-vous que les tâches de lancement sont exécutées? –

Répondre

3

Edit: Pas plus vrai, avec Android Gradle Plugin 3.x. Les bibliothèques publient également les artefacts debug et release. Si le projet a des saveurs ou des types personnalisés, ceux-ci sont également créés. Et à travers les modules, il essaie de faire correspondre automatiquement les variantes. Si ce n'est pas le cas, vous devez fournir matchingFallback pour faire correspondre les variantes entre les modules. Plus d'informations peuvent être trouvées ici: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors


modules de la bibliothèque Android publie seul type de construction "release". Ils n'ont pas de type de construction "debug". Même votre module d'application construit la version de débogage, il utilisera la version de la bibliothèque.

Vous pouvez activer « debug » construire le type de la dépendance des bibliothèques en utilisant ce qui suit dans build.gradle de votre module fichier:

android { 
    publishNonDefault true 
    ... 
} 

Ensuite, lorsque vous utilisez cette dépendance dans l'autre module, vous devez utiliser comme ceci: J'utilise le même tour dans mon application. J'ai un module partagé et j'utilise la version de débogage du module. Consultez les détails ici:

https://github.com/pomopomo/WearPomodoro/blob/develop/mobile/build.gradle#L90

Questions connexes