Scala + Android:有人在Eclipse中成功构建和调试吗?

时间:2011-11-13 17:17:12

标签: android scala scala-ide

到目前为止,我能够在Eclipse中调试的唯一方法是使用Treeshaker和Scala IDE的buggy 2.8分支。如果我尝试使用没有Treeshaker的Scala IDE进行构建,我会在scala-on-android上的每个this long thread获得ClassNotFound错误。

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

但是,我设置的断点只会在我将调试器连接到线程后执行,并且没有一个断点在到达时导致线程停止。

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

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

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

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

Here's some interesting discussion关于使用Eclipse构建和调试Android应用程序的困难。

2 个答案:

答案 0 :(得分:11)

一般情况下调试使用Eclipse在Android上运行的Scala代码运行良好,其行为或多或少类似于在常规(非Android)应用程序上调试Scala。

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

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

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

调试器未安装断点的一个潜在原因是源代码行在字节代码中没有直接等效项。为了理解,我想到了。

答案 1 :(得分:0)

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

Eclipse, Android, Scala made easy but still does not work

唯一缺少的功能是最新的scala eclipse插件中的新scala调试器,该插件尚未集成。例如,要调试地图,您必须通过Map.scala,ArrayBuffer.scala,Object.scala等文件。