Как мне подсказывали, я просмотрел несколько статей, описывающих, как сделать IntelliJ Idea и Android и Scala работать вместе, но оказалось, что все они были написаны 1 или 2 года назад. И, вероятно, с тех пор что-то изменилось, и теперь есть другие решения для достижения этой цели. Конкретно, есть новое решение https://github.com/yareally/android-scala-intellij-no-sbt-plugin, для которого я не знаю, хорошо ли оно работает или нет.
У меня есть IntelliJ Idea 12, Android SDK, Scala, SBT и все остальные компоненты, установленные и настроенные. Остается только настроить IntelliJ Idea 12, чтобы он работал с Scala вместо Java для создания приложений для Android.
Пожалуйста, не закрывайте вопрос. Я видел предыдущие вопросы, похожие на мои, но, как я уже сказал, они устарели.
Вопрос в том, как мне это сделать сейчас (май 2013 г.)?
P.S. Я пробовал Android Development Studio, но я даже не смог запустить его из-за многих ошибок.
Обновление: Вы можете прочитать учебник. Я написал о новой версии SBT-Android (0.7). Большинство ваших проблем необходимо решать там. Если это не так, то это проблема.
Обновление 2:. Справедливости ради, также ведется большая работа: android-sdk-plugin @pfn на GitHub.
Что касается ProGuard и времени сборки:
Я, я, предустановил большие библиотеки на своем устройстве с помощью sbt-android
. Это полностью исключает ProGuard, но требует root.
android-sdk-plugin
последняя версия может похвастаться новым кешем ProGuard (так же как AndroidProguardScala), что довольно мило и действительно устраняет ProGuard в большинстве случаев во время развитие.
В течение нескольких месяцев я вносил вклад в SBT-Android, поэтому я знаю это намного лучше, чем другие решения.
На данный момент плагин развивается быстро, используя:
android:preload-{device, emulator}
, больше не требуется Proguard для разработки!)Текущая версия не имеет большинства этих тонкостей, но они появляются в ближайшие недели. Некоторая документация, конечно, скоро последует очень быстро, с примерами и всем, что я придумаю.
Я рекомендую вам присоединиться к Scala в Android группе Google и поделиться своими мыслями, между прочим. Также есть канал #sbt-android
на Freenode, если вы в IRC.
Просто хотел перезвонить этому. Я использовал https://github.com/yareally/android-scala-intellij-no-sbt-plugin, хотя я обнаружил, что инструкции являются неопределенными, а не когда-либо использовавшими IntelliJ до этого.
Вероятно, вы все разобрались и довольны SBT, но для моих целей я просто хотел протестировать Scala на Android без дополнительных дополнительных звонков и свистков. Итак, вот некоторые мелочи, которые я должен был сделать, чтобы работать с файлом no-sbt-plugin:
В итоге я включил scala -compiler.jar(вместе с scala -library.jar и scala -reflect.jar) в качестве глобальной библиотеки:
Таким образом, у компилятора есть доступ к библиотеке и коду отражения, иначе я получал ошибки. Если вы не включаете библиотеку, среда IDE жалуется, что компилятору нужна соответствующая библиотека, и если вы не включаете в себя отражение, оно выплевывает кучу ошибок во время компиляции, которые не могут найти отражение определений классов.
Я должен был включить scala -library.jar в качестве зависимости от модуля (который также имел побочный эффект включения его в раздел "Библиотеки" ):
Прежде чем делать это, у меня был установлен плагин Scala, был создан проект Android и просто добавлен фасет Scala (игнорируйте настройки памяти, я обманывал):
Наконец, мне пришлось решить некоторые оставшиеся ошибки компиляции, добавив несколько строк "-dontwarn" в файл proguard txt. Достаточно просто.
Работает как шарм. Пока что я не сделал ничего существенного, но я с нетерпением жду использования Scala в своем следующем Android-проекте.
Я написал библиотеку Scaloid, которая делает разработку Android более сжатой с помощью Scala.
Для быстрой отправной точки я написал проект hello-world maven для Scala + Android.
Я использую Intellij в качестве основной IDE, и он импортирует проект с очарованием.
Я смотрел эту тему в течение нескольких месяцев, наконец, получил некоторое время, чтобы провести настоящие тесты.
Использование IntelliJ 13 с SBT 0.13 и Scala 2.10.3.
SBT-Android не обновлялся в течение нескольких месяцев. Я обнаружил, что инструкции устарели, и мне не удалось создать рабочий проект.
Работала android-sdk-plugin. Просто последовал простым шагам, и я получил "привет мир" на моем телефоне. Но импорт проекта SBT в IntelliJ не будет работать должным образом, потребуется несколько модификаций проекта вручную.
Я также попытался сначала создать проект Android, а затем добавить фреймворк Scala, но не работал, как я ожидал.
Я прошел через это около месяца назад, и мне удалось сделать его очень приятным, используя Gradle.
Вот результат: https://github.com/ghik/akkdroid
Это простой проект клиент-сервер с использованием Scala и Akka с клиентской стороны на Android, разработанный с помощью IntelliJ IDEA. Я знаю, что клиент-сервер на самом деле не имеет смысла с Akka, но это просто простой университетский проект, чтобы доказать, что эти технологии могут работать вместе.
Обратите внимание, однако, что gradle script в этом проекте предназначен только для создания проекта IDEA, он должен быть дополнительно расширен, чтобы иметь возможность выполнять правильную сборку приложений Android.