11

到目前为止,我能够在 Eclipse 中进行调试的唯一方法是将 Treeshaker 与 Scala IDE 的错误 2.8 分支一起使用。如果我尝试在没有 Treeshaker 的情况下使用 Scala IDE 构建,我会在 scala-on-android 上的这个长线程中收到 ClassNotFound 错误。

理想情况下,我会使用 sbt-android 构建并在 Eclipse 中进行调试,但我一直无法成功。我能够实现的最接近调试 sbt-android 项目的方法是使用 android:package-debug 命令构建 sbt-android 项目,使用 android:start-emulator 命令启动可执行文件,然后将 DDMS 连接到应用程序的线。

但是,我设置了仅在将调试器连接到线程后才会执行的断点,并且它们都没有导致线程在到达时停止。

除了 Treeshaker 和基于 Scala 2.8 的 Scala IDE 之外,是否有人能够在 Eclipse 中使用任何其他工具调试 Scala Android 代码?

更新:在使用 sbt、sbteclipse 和 android-plugin 从命令行构建后,我在 Eclipse 中成功调试(不是构建)。

我所做的是使用 Eclipse 的新 Android 项目菜单,连接到现有源,并将其指向 ./src/main 目录。然后 Eclipse 识别出 Android 设置,并且 DDMS 识别出该任务属于 Eclipse Android 项目。

我还必须通过从构建路径中删除 src 文件夹并添加 ./scala 文件夹来重新配置 Eclipse 项目的 Java 构建路径源文件夹。然后我不得不重新启动 Eclipse 以向 Scala 文件添加断点。

这里有一些关于使用 Eclipse 构建和调试 Android 应用程序的困难的有趣讨论。

4

2 回答 2

11

一般来说,使用 Eclipse 调试在 Android 上运行的 Scala 代码效果很好,并且其行为或多或少类似于在常规(非 Android)应用程序上调试 Scala。

我将 sbt 与 sbt-android 和 android:start-emulator 或 android:start-device 一起使用。

根据我是否需要调试应用程序启动,我在设备或模拟器的开发人员设置中设置了等待调试器的选项。为此,请运行“DevTools”/“开发设置”。选择您的应用程序并选中“等待调试器”。

然后您必须选择要在 DDMS 中调试的进程。确保显示调试端口,然后连接 Eclipse 调试器。

调试器未安装断点的一个潜在原因是源代码行在字节码中没有直接等效项。因为理解会浮现在脑海中。

于 2011-11-13T19:40:18.970 回答
0

使用 AndroidProguardScala,我在调试中成功,使用 scala 2.10 和 Eclipse 3.7 它还处理理解作为通常的插件。请参阅那里的详细答案:

Eclipse、Android、Scala 变得简单但仍然无法正常工作

唯一缺少的功能是最新的 scala eclipse 插件中的新 scala 调试器,该插件尚未集成。因此,例如,要调试地图,您将不得不浏览 Map.scala、ArrayBuffer.scala、Object.scala 等文件。

于 2013-10-09T12:03:31.837 回答