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


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

理想情况下,我会在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文件添加断点。

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


7607
2017-11-13 17:17


起源

如果你是Eclipse用户,你可能想尝试我的AndroidProguardScala Eclipse插件 - 这使得使用Scala + Android更容易一些。 github.com/banshee/AndroidProguardScala - James Moore


答案:


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

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

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

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

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


11
2017-11-13 19:40





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

Eclipse,Android,Scala变得简单但仍然无效

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


0
2017-10-09 12:03