2015-08-25 12 views
10

In unserem Projekt verwenden wir Gradle + RetroLambda + Proguard. Retrolambda incremental build wird auf false gesetzt.Android Build mit RetroLambda ignoriert Quellcodeänderungen

Manchmal wird Build ohne Fehler übertragen, aber Quellcodeänderungen gilt nicht in App. Um dieses Problem zu lösen, die wir Projekt reinigen und den Wiederaufbau mit

gradlew clean assembleDebug 

aber in unserem Fall dauert es etwa 2,30 m. Das ist zu lang.

Wie können wir dieses Problem lösen?

+0

Es hängt von Ihrer Maschinenkonfiguration ab. Es dauert genauso lange wie Sie den gleichen Befehl auszuführen (ich habe retroLambda, andere Deps werden natürlich anders sein). Derselbe Befehl auf der Maschine meines Teamkollegen läuft in ungefähr einer Minute. Er hat die gleiche Konfiguration wie ich, abgesehen von einer SSD. – iceman

+0

Verwenden Sie Proguard auf Debug-Builds? – tasomaniac

Antwort

1

Im Allgemeinen wird Proguard nur für Produktionsserien verwendet. Sie können es vorübergehend deaktivieren, indem Sie minifyEnabled true und/oder shrinkResources true aus Ihrem Gerät gregle.build entfernen, um zu sehen, ob es den Flaschenhals verursacht.

Alternativ, gehen Sie zu Android Studio -> Einstellungen -> Build, Ausführung, Bereitstellung -> Compiler -> und fügen Sie "--offline" als eine Befehlszeilenoption hinzu. Dies wird verhindern, dass Abhängigkeiten von jedem Build heruntergeladen werden.

Wenn Sie das neueste Android Studio (über den Canary Channel) betreiben, können Sie die Hotspot-Kompilierung mit 'Instant Run' aktivieren: Android Studio -> Einstellungen -> Build, Ausführung, Deployment -> Instant Run -> Check 'Aktivieren sofortiger Lauf ... '. Seien Sie sich bewusst, dass diese Funktion immer noch experimentell ist und Sie auf Fehler stoßen können.