2011-10-29 16 views
9

Stworzyłem aplikację demo z wtyczką sbt na Androida.Długie czasy budowy z wtyczką Android sbt

Aplikacja jest bardzo prosta. Umieściłem plik MainActivity.java pod numerem /src/main/java/my/package/, a po naciśnięciu przycisku przechodzi on do drugiej Activity, ale wykonano ją w Scala.

Wszystko działa dobrze, ale czasy budowy mnie zabijają. Kiedy zmodyfikować coś biegnę w urządzeniu przy użyciu:

> Android: Pakiet-debug

> android: start-device

Mój problem jest to, że trwa prawie pełną minutę zbudować projekt dwóch działań. Czy istnieje inny sposób kompilacji i uruchamiania?

To moje wyjście z android: Pakiet-debug

> Android: Pakiet-debug [info] Napisano /Users/macarse/Dokumenty/demo/target/src_managed/main/scala/mojego/package/TR.scala [informacje] Kompilowanie 1 źródła Scala do /Users/macarse/Documents/demo/target/scala-2.9.0-1/classes ... ProGuard, wersja 4.6 ProGuard jest wydany na licencji GNU General Licencja publiczna. Dlatego musisz upewnić się, że programy, które zawierają link do (scala, ...), mają również Powszechną Licencję Publiczną GNU. Możesz także złożyć wniosek o wyjątek z autorem ProGuard. Czytanie katalogu programu [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes] Odczytywanie słoiczka programowego [/Users/macarse/.sbt/boot/scala-2.9.0-1/ lib/scala-library.jar] (filtrowane) Czytanie słoika biblioteki [/Users/macarse/Documents/android-sdk-mac_86/platforms/android-4/android.jar] Uwaga: Ignorujesz wszystkie ostrzeżenia! Przygotowanie słoika wyjściowego [/Users/macarse/Documents/demo/target/classes.min.jar] Kopiowanie zasobów z katalogu programu [/Users/macarse/Documents/demo/target/scala-2.9.0-1/classes ] Kopiowanie zasobów z programu jar [/Users/macarse/.sbt/boot/scala-2.9.0-1/lib/scala-library.jar] (filtrowane) [informacje] Dexing /Users/macarse/Documents /demo/target/classes.dex [info] Opakowanie /Users/macarse/Documents/demo/target/demo-0.1.apk [sukces] Razem czas: 56 s, zakończony 29 października 2011 4:22:54

Odpowiedz

3

To zajmuje dużo czasu, ponieważ proguard musi przetwarzać Standardowa biblioteka Scala minimalizuje otrzymany plik .apk, a standardowa biblioteka Scala jest ogromna.

Proponuję przejść do Scala 2.8, jeśli nie używasz funkcji Scala 2.9, ponieważ 2.8 ma mniejszą bibliotekę standardową.

Z drugiej strony nie należy używać android:package-debug, gdy nie jest to konieczne. compile skompiluje twój kod źródłowy, wystarczy, jeśli chcesz się upewnić, że Twój program może zostać skompilowany.

Używaj tylko android:package-debug, gdy masz zamiar przetestować go na urządzeniu z systemem Android, to pozwoli zaoszczędzić czas.

+0

Dzięki za odpowiedź. Kompilacja AFAIK również przechodzi przez proguard, więc również zajmie to dużo czasu. – Macarse

+1

To nie jest poprawne, przynajmniej w wersji 0.6.x dla Androida. 'compile' nie wykona przejścia proguard. –