2013-08-07 15 views
16

Podczas uruchamiania programu assembleDebug uruchamiane są zadania związane z wydaniami projektów, od których zależyam.Android gradle build: running assemblyDebug wykonuje zadania zwalniające zależności projektu o nazwie

np. Mam projekt o nazwie "x", który zależy od "y".

Kiedy gradle assembleDebug wywołuje Y: mergeReleaseProguardFiles, packageReleaseAidl, itp ... itd ..

+0

Jestem również zdezorientowany. Nie zdarzyło ci się teraz uzyskać odpowiedzi na to pytanie (widząc to ponad rok temu)? Jeśli samodzielnie zbuduję kilka modułów, jak w: moduleA: assembleDebug,: moduleB: assembleDebug jedynym zadaniem związanym z wydaniem jest preReleaseBuild (który z jakiegoś powodu jest częścią assembleDebug, więc powinno być normalne), ale kiedy to zrobię: moduleX : assembleDebug (który zależy od modułu A/B) wywołuje wiele zadań zwalniania, tak jak doświadczyłeś. Powodem, dla którego dbam jest to, że wydaje się, że to powoduje, że buildTypes {release {runProguard true jest używany, którego nie chcę do debugowania. – riper

+0

Tak, nigdy nie otrzymałem odpowiedzi :) – Guy

+0

Czy dzieje się to w przypadku dowolnego pliku kompilacji (np. Tworzenia nowego pustego projektu w Android Studio) lub tylko w przypadku konkretnych plików kompilacji? Jeśli to drugie, edytuj swoje pytanie i dodaj szczegóły. W jaki sposób określasz uruchamianie zadań związanych z wydaniem? –

Odpowiedz

3

Edit: Nieprawda już z Androidem Gradle Plugin 3.x.

Biblioteki publikują również artefakty debug i release. Jeśli projekt ma smaki lub typy niestandardowe, są one również tworzone. W poprzek modułów próbuje automatycznie dopasować warianty. Jeśli nie zostanie dopasowany, musisz podać matchingFallback, aby dopasować warianty w różnych modułach. Więcej informacji można znaleźć tutaj: https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#resolve_matching_errors


moduły biblioteczne Android publikuje tylko „zwolnienie” typu build. Nie mają typu "debugowania". Nawet twój moduł aplikacji zbuduje wersję debugowania, użyje wersji wydania tej biblioteki.

Można włączyć „debug” zbudować rodzaj uzależnienia biblioteki przy użyciu następujących w module za build.gradle pliku:

android { 
    publishNonDefault true 
    ... 
} 

następnie, gdy używasz tej zależności w drugim module, należy użyć tak:

dependencies { 
    releaseCompile project(path: ':moduleY', configuration: 'release') 
    debugCompile project(path: ':moduleY', configuration: 'debug') 
} 

Używam tej samej sztuczki w mojej aplikacji. Mam wspólny moduł i używam wersji debugowania modułu. Znajdź szczegóły tutaj:

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

Powiązane problemy