Ich habe das Tutorial bei Scala und Android mit Scala 2.7.3 final verfolgt. Die resultierende Android-App funktioniert, aber selbst die einfachste Anwendung benötigt einige Minuten (!), Um kompiliert zu werden, und benötigt 900 kb komprimierte App , was ein Show-Stopper für mobile Anwendungen ist. Außerdem geht der IDE von Zeit zu Zeit der Speicher aus. Ich gehe davon aus, dass dex
es nicht für große Bibliotheken wie die gemacht ist scala-library
.
- Meine Frage ist also: Hat jemand dies tatsächlich getan und gibt es eine Heilung dafür?
Sie können jetzt das Android-Plugin für Gradle verwenden, um Android-Anwendungen in Scala zu erstellen. Es enthält das ProGuard-Tool zum Trimmen des Fettes aus der resultierenden APK-Datei und scheint also Ihren Anforderungen zu entsprechen.
https://github.com/jvoegele/gradle-android-plugin/wiki
quelle
Es gibt auch ein Plugin für den Scala-basierten Builder sbt : sbt-android-plugin .
quelle
Tutorials und Beispiele finden Sie auch auf der Seite "Exploring Android" von Stéphane Micheloud: http://lamp.epfl.ch/~michelou/android/
quelle
Ich habe diese detaillierte Lösung mit Eclipse 3.7, Scala 2.10 und dem Plug-in AndroidProguardScala v50 überprüft:
https://stackoverflow.com/a/11084146/1287856
Alles funktioniert gut. Eine einfache Testanwendung mit skalierter Hauptaktivitätsklasse benötigt nur 38 KB. Bibliotheksprojekte werden unterstützt. Proguard wird beim Exportieren des Projekts aktiviert.
quelle
Die Entwicklung von Android-Apps für Scala wird kontinuierlich weiterentwickelt. Der derzeit beste Weg, dies zu tun, erscheint SBT in Verbindung mit dem Android-SDK-Plugin , das * beibehalten wird und für mich in meinem Scala / Android-Projekt gut funktioniert. Ein etwas aktuelles Beispiel, das die Verwendung dieses Plugins mit dem bereits erwähnten Scaloid demonstriert, ist ebenfalls zu finden .
Bitte beachten Sie, dass diese Frage ein typisches Beispiel für eine Frage mit veralteten Antworten zum Stapelüberlauf ist. Diese Antwort wird wahrscheinlich auch irgendwann veraltet sein.
* Die anderen SBT-basierten Projekte, die in diesem Antwort-Thread erwähnt werden, scheinen zum Zeitpunkt des Schreibens in den letzten sechs Monaten keinen Code für sie geschrieben zu haben. Möglicherweise treten Kompatibilitätsprobleme mit neueren Versionen von Scala und SBT auf.
quelle
Wenn Sie Maven verwenden, verwenden Sie Android-Scala-Test als Startvorlage. Es funktioniert hervorragend für mich sofort.
Scaloid ist ein in Scala geschriebener Android-API-Wrapper, mit dem Sie Ihr Android-Programm im Scala-Stil schreiben können.
quelle
Sie können die Scala unter Android ohne SBT verwenden. Sie wurde extern von Gradle erstellt, um Android-Anwendungen zu erstellen. https://github.com/yareally/android-scala-intellij-no-sbt-plugin
Gradle ist ein nativeres Bauwerkzeug für Android als SBT.
Es gibt ein gutes Beispiel für das clientseitige und serverseitige Scala-Lösungskonzept und das Gradle-Building-Tool als Fortschritt für die IntelliJ IDEA-Workbench.
Großer Fortschritt, dass Kernklassen für Client und Server üblich sind.
https://github.com/ghik/akkdroid
Gutes Tutorial für IDEA und Android-Plugin: http://fxthomas.github.io/android-plugin/
quelle
Das größte Problem mit Scala unter Android sind die Kompilierungszeiten.
Möglicherweise kann das Strippen mit dem IDEA13 / Scala-Plugin auf einem Dual Quad Core (8-CPU) E5450 Xeon mit 8 GB aufgrund der Proguard-Klasse zwei Minuten oder länger dauern.
Ich bin einfach zu Java zurückgekehrt, nachdem ich ein umfangreiches Scala-Android-Projekt abgeschlossen hatte, da die Kompilierungszeiten zu frustrierend waren.
quelle