2015-08-25 10 views
10

W naszym projekcie używamy gradle + retrolambda + proguard. Retrospektura przyrostowa Retrolambda jest ustawiona na wartość false.Konstrukcja Androida z retrolambdą ignoruje zmiany kodu źródłowego

Czasami kompilacja przebiega bez błędów, ale zmiany kodu źródłowego nie ma zastosowania w aplikacji. Aby rozwiązać ten problem, możemy oczyścić i odbudować projekt z

gradlew clean assembleDebug 

ale w naszym przypadku to trwa około 2,30 m. To zbyt długo.

Jak możemy rozwiązać ten problem?

+0

To zależy od konfiguracji urządzenia. Zajmuje mi to samo, co ty, aby uruchomić to samo polecenie (mam retrolambdę, inne deps będą oczywiście inne). To samo polecenie na komputerze mojego kolegi z drużyny działa za mniej więcej minutę. Ma identyczną konfigurację jak moja, z wyjątkiem SSD. – iceman

+0

Czy używasz proguard w kompilacjach debugowania? – tasomaniac

Odpowiedz

1

Generalnie proguard jest używany tylko do produkcji produkcyjnych. Możesz go tymczasowo wyłączyć, usuwając minifyEnabled true i/lub shrinkResources true ze swojego gradle.build, aby sprawdzić, czy powoduje to wąskie gardło.

Można również przejść do Studio Android -> Preferencje -> Kompilacja, wykonanie, wdrożenie -> Kompilator -> i dodać "--offline" jako opcję linii poleceń. To zatrzyma gradle od pobierania zależności od każdej kompilacji.

Jeśli korzystasz z najnowszego oprogramowania Android Studio (za pośrednictwem Kanału Kanaryjskiego), możesz włączyć kompilację hotspotów za pomocą funkcji "Natychmiastowe uruchomienie": Android Studio -> Preferencje -> Kompilacja, wykonanie, wdrożenie -> Natychmiastowe uruchamianie -> Zaznacz "Włącz" natychmiastowy bieg ... ". Pamiętaj, że ta funkcja jest wciąż eksperymentalna i możesz napotkać błędy.

Powiązane problemy