2014-11-12 20 views
15

Po wprowadzeniu pewnych zmian w kodzie źródłowym, Android Studio (w rzeczywistości gradle) musi przebudować projekt. To jest oczywiste.Dlaczego Studio Android odbudowuje projekt tak wolno, nawet jeśli nie ma żadnych zmian w źródłach?

Dlaczego druga kompilacja zajmuje prawie taki sam czas, jak pierwsza kompilacja, nawet jeśli nie wprowadzono żadnych żadnych zmian w projekcie w postaci? Kiedy patrzę na GradleConsole, czeka na zadanie "assembleDubug". Myślę, że gradle powinien być świadomy, że nie ma żadnych zmian i nie powinien marnować na to zbyt wiele czasu.

Odpowiedz

16

Wreszcie znalazłem rozwiązanie: włącz Praca offline dla gradle.

enter image description here

lub używając CLI:

./gradlew --offline assembleDebugOrWhatever

0

Nie stanowi to problemu jako takiego. I nie ma to nic wspólnego z Android Studio, ponieważ Gradle to tylko wtyczka do Androida, która pomaga budować projekty. Musisz w pełni zrozumieć, co gradle ma wiedzieć, dlaczego Android Studio używa go zawsze, gdy uruchamiasz aplikacje. Spójrz na ten miły SO question na gradle i artykuł na ten temat android developer website. Wreszcie, z mojego osobistego doświadczenia, jeśli chodzi o radzenie sobie z Androidem Studio i Eclipse dla rozwoju Androida, musisz być trochę cierpliwy. Mam nadzieję, że to pomaga w pewien sposób.

5

Czy konsola Gradle powiedzieć :app:assemeble UP-TO-DATE ?

Jeśli przyjrzeć się konfiguracji wykonywania, można zauważyć na samym dole Before Launch: Gradle-aware Make

To jest po prostu mówienie go skompilować (jeśli to konieczne) przed uruchomieniem , ale to wykrycie zostało przekazane firmie Gradle. Gradle dokona rekompilacji tylko wtedy, gdy wykryje, że musi, ale zadanie assemble musi nadal próbować wykryć UP-TO-DATEness. Tak więc mówi, że to działa, ale w rzeczywistości nic nie robi. Kiedy uruchamiam go dwa razy z rzędu, za pierwszym razem zajmuje to trochę czasu, ALE za drugim razem po prostu szybko przechodzi przez listę zadań (z grupą UP-TO-DATE) i wdraża do telefonu/emulator.

+0

Mam nadzieję, że gradle nie będzie pokazywać, że powtarzanie żółty UP-TO-DATE, ponieważ dostarczyłem - offline – fedmich

0

Aby uniknąć odbudować każdym razem idę do moich moduł ustawieniach projektu -> Zależności górę lub w dół, a jeden z moich element biblioteki -> Zastosuj -> Ok -> Zrób regenerację R.java. Można również spróbować odznaczenie "użytku zewnętrznego build" w ustawieniach kompilatora:

Plik -> Ustawienia (Ctrl + Alt + S) -> Compiler -> odznacz "Użyj build zewnętrznego"

+0

Czy nadal istnieje w wersji 3? (nie mógł go znaleźć) –

+0

Czy nadal istnieje w wersji 3? (nie mogłem go znaleźć) –

Powiązane problemy