IntelliJ Idea 12 + Android + Scala в настоящее время


Как мне было предложено, я пробежал несколько статей, описывающих, как заставить 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, но я даже не удалось запустить его из-за многих ошибок.

5 56

5 ответов:

обновление: вы можете прочитать учебник я писал о предстоящей новой версии SBT-Android (0.7). Большинство ваших проблем должны быть решены там. Если это не так, то это проблема.


обновление 2: справедливости ради, есть также большая работа в процессе:android-sdk-plugin по @pfn на GitHub.

о ProGuard и строить раз :

  • Я, предварительная загрузка больших библиотек на моем устройстве с sbt-android. Это полностью устраняет ProGuard, но требует root.

  • android-sdk-pluginпоследняя версия имеет новый кэш ProGuard (то же самое, что и AndroidProguardScala), который довольно сладок и устраняет ProGuard в большинстве случаев во время разработки.


я внес свой вклад в SBT-Android уже несколько месяцев, так что я знаю это намного лучше чем другие решения.

на данный момент плагин развивается быстро, с :

  • полная поддержка IntelliJ (благодаря SBTIdea) очень скоро (собственно, это уже работает, мне просто нужно отправить запросы)
  • автоматическая предварительная загрузка Scala на эмулятор или корневое устройство (просто запустить android:preload-{device, emulator}, не должны быть больше необходимых для развития!)
  • должен поддерживать простой Gradle проекты из коробки с минимальными усилиями (структура каталогов очень похожа)
  • конфигурация намного проще (просто добавьте плагин и файл проекта и все готово!)

в текущей версии нет большинства из этих тонкостей, но они появятся в следующие недели. Некоторые документы, конечно, будет следовать очень скоро после этого, с примерами и все, что я буду думать из.

Я призываю Вас присоединиться к Scala на Android Google Group и поделиться своими мыслями, кстати. Там также есть #sbt-android канал на Freenode, если вы находитесь в IRC.

просто хотел вмешаться в это. Я использовал https://github.com/yareally/android-scala-intellij-no-sbt-plugin, хотя я нашел инструкции расплывчатыми, никогда не использовал IntelliJ до этого.

вы, вероятно, уже все разобрали и довольны SBT, но для моих целей я просто хотел протестировать Scala на Android без всех дополнительных наворотов. Итак, вот некоторые мелочи, которые я должен был сделать, чтобы получить материал no-sbt-plugin рабочий:

в итоге я включил Scala-компилятор.банку (вместе с "Ла Скала" -библиотека.Джар и скала-размышляют.банку) в качестве глобальной библиотеки: enter image description here

таким образом, компилятор имеет доступ к библиотеке и код отражения, в противном случае я получаю ошибки. Если вы не включаете библиотеку, IDE жалуется, что компилятору нужна связанная библиотека, и если вы не включаете reflect, он выплевывает кучу ошибок во время компиляции, которые он не может найти класс reflect определение.

Мне пришлось включить scala-библиотеку.jar также является зависимостью модуля (что также имело побочный эффект включения его в раздел библиотек): enter image description here

прежде чем делать все это, я установил плагин Scala, создал проект Android и просто добавил фасет Scala (игнорируйте настройки памяти, я дурачился): enter image description here

наконец, мне пришлось устранить некоторые оставшиеся ошибки компиляции, добавив несколько строк " - dontwarn proguard txt файл. Достаточно просто.

работает как шарм. Еще не сделал ничего существенного с ним, но с нетерпением жду использования Scala в моем следующем проекте Android.

Я написал Scaloid библиотека, которая делает разработку Android более лаконичной с помощью Scala.

для быстрого начала я написал Привет, мир проект maven для Scala + Android.

Я использую Intellij в качестве основной IDE, и он импортирует проект с шармом.

Я прошел через это около месяца назад, и мне удалось заставить его работать довольно хорошо, используя Gradle.

вот результат:https://github.com/ghik/akkdroid

Это простой клиент-серверный проект с использованием Scala и Akka, с клиентской стороны на Android, разработанный с IntelliJ IDEA. Я знаю, что клиент-сервер действительно не имеет смысла с Akka, но это всего лишь простой университетский проект, чтобы доказать, что эти технологии могут работать вместе.

обратите внимание, однако, что сценарий gradle в этом проекте предназначен только для создания проекта IDEA, он должен быть дополнительно расширен, чтобы иметь возможность выполнять правильную сборку приложений Android.

Я наблюдал за этой нитью в течение нескольких месяцев, наконец-то получил некоторое время, чтобы сделать реальные тесты.

использование IntelliJ 13 С SBT 0.13 и Scala 2.10.3.

  1. The SBT-Android не обновлялся в течение нескольких месяцев. Я обнаружил, что инструкции устарели, и мне не удалось создать рабочий проект.

  2. The android-sdk-plugin работали. Просто следовать простым шагам и я получил "привет мир" работает на моем телефоне. Но импорт проекта SBT в IntelliJ не будет работать должным образом, потребуются некоторые изменения проекта вручную.

  3. Я также попытался сначала создать проект Android, а затем добавить Scala framework, но не получилось, как я ожидал.