Scala + Android: Кто-нибудь успешно собирает и отлаживает в Eclipse? - PullRequest
11 голосов
/ 13 ноября 2011

Пока что единственный способ отладки в Eclipse - это использование Treeshaker с ошибочной веткой 2.8 в Scala IDE. Если я пытаюсь собрать с Scala IDE без Treeshaker, я получаю ошибки ClassNotFound за этот длинный поток на scala-on-android.

В идеале я бы собирал с помощью sbt-android и отлаживал в Eclipse, но я не смог сделать это успешно. Самым близким к отладке проекта sbt-android, которого я смог достичь, было создание проекта sbt-android с помощью команды android: package-debug, запуск исполняемого файла с помощью команды android: start-emulator, а затем подключение DDMS к приложению. нить.

Однако у меня были установлены точки останова, которые выполнялись бы только после того, как я подключил отладчик к потоку, и ни одна из них не вызывала остановку потока при достижении.

Кто-нибудь смог отладить код Android Scala в Eclipse, используя любые другие инструменты, кроме Treeshaker с Scala IDE на основе Scala 2.8?

ОБНОВЛЕНИЕ : Я успешно отлаживаю (не собираю) в Eclipse после сборки из командной строки с помощью sbt, sbteclipse и android-plugin.

Я использовал меню проекта Android для Eclipse, подключился к существующему источнику и указал его в каталоге ./src/main. Затем Eclipse распознал настройки Android, а DDMS признал задачу как принадлежащую проекту Eclipse Android.

Мне также пришлось перенастроить исходные папки пути сборки Java проекта Eclipse, удалив папку src из пути сборки и добавив папку ./scala. Затем мне пришлось перезапустить Eclipse, чтобы добавить точки останова в файл Scala.

Вот интересная дискуссия о трудностях создания и отладки приложений Android с использованием Eclipse.

Ответы [ 2 ]

11 голосов
/ 13 ноября 2011

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

Я использую sbt с sbt-android и android: start-эмулятор или андроид: start-device.

В зависимости от того, нужно ли мне отлаживать запуск приложения, я установил опцию ожидания отладчика в настройках разработчика на устройстве или эмуляторе.Для этого запустите «DevTools» / «Настройки разработки».Выберите приложение и установите флажок «Дождаться отладчика».

Затем необходимо выбрать процесс для отладки в DDMS.Убедитесь, что отображается порт отладки, а затем подключитесь к отладчику Eclipse.

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

0 голосов
/ 09 октября 2013

Используя AndroidProguardScala, я успешно отлаживаю, используя scala 2.10 и Eclipse 3.7 Это также касается для понимания как обычный плагин. Смотрите подробный ответ там:

Затмение, Android, Scala сделано легко, но все равно не работает

Единственная отсутствующая функция - это новый отладчик scala в последнем плагине scala eclipse, который еще не интегрирован. Так, например, для отладки карты вам нужно будет использовать такие файлы, как Map.scala, ArrayBuffer.scala, Object.scala и т. Д.

...