IntelliJ Idea 12 + Android + Scala现在

正如我所build议的,我已经阅读了一些文章,介绍如何使IntelliJ Idea和Android和Scala一起工作,但事实certificate它们都是在一两年前写的。 很可能,自那时以来发生了一些变化,现在还有其他解决scheme来实现这一目标。 具体来说,有一个新的解决schemehttps://github.com/yareally/android-scala-intellij-no-sbt-plugin我不知道它是否运作良好。

我有IntelliJ Idea 12,Android SDK,Scala,SBT和所有其他的东西安装和设置。 剩下的唯一东西就是设置IntelliJ Idea 12,使其能够与Scala而不是Java来创buildAndroid应用程序。

请不要closures这个问题。 我看过以前的类似于我的问题,但正如我所说,他们已经过时了。

问题是,我现在怎么做(2013年5月)

PS我试过Android开发工作室,但我甚至无法启动它由于许多错误。

更新:你可以阅读我写的SBT-Android(0.7)即将发布的新版本的教程 。 应该在那里解决你的大部分问题。 如果不是,那就是个问题。


更新2:为了公平起见,还有一个伟大的工作正在进行: android-sdk-plugin by @pfn在GitHub上。

关于ProGuard和build造时间:

  • 我自己,用sbt-android在我的设备上预装大型库 。 这完全消除了ProGuard,但需要root。

  • android-sdk-plugin的最新版本拥有一个新的ProGuardcaching(与AndroidProguardScala相同),这非常可爱,并且在开发过程中大多数情况下都消除了ProGuard。


我已经为SBT-Android贡献了几个月的时间,所以我比其他解决scheme更了解它。

截至目前,插件正在迅速发展,其中包括:

  • 全面的IntelliJ支持(感谢SBTIdea )很快就会来(实际上,它已经可以工作了,我只需要发送pull请求)
  • 在模拟器或根设备上自动预加载Scala (只需运行android:preload-{device, emulator} ,不再需要开发Proguard!)
  • 应该以最小的努力支持简单的Gradle项目(目录结构非常相似)
  • configuration要简单得多(只需添加插件和项目文件即可 )!

目前的版本并没有大部分的细节,但是在接下来的几周内会出现。 之后的一些文档当然会随之而来,举例和我会想到的一切。

顺便说一句,我鼓励你joinAndroid谷歌集团的Scala ,分享你的想法。 如果你进入IRC,还有Freenode的#sbt-android频道。

只是想在这个钟声。 我用https://github.com/yareally/android-scala-intellij-no-sbt-plugin ,虽然我发现说明是模糊的,在此之前从未使用过IntelliJ。

你可能已经把所有的东西都整理出来了,并且对SBT很满意,但是为了我的目的,我只是想在Android上testing一下Scala而没有多余的花里胡哨。 所以,这里有一些我不得不做的事情来让无插件的东西工作:

我最终将scala-compiler.jar(以及scala-library.jar和scala-reflect.jar)包含在全局库中: 在这里输入图像说明

这样,编译器可以访问库和reflection代码,否则我会得到错误。 如果你不包含这个库,IDE会抱怨编译器需要一个关联的库,如果你不包含反映,它会在编译时吐出一堆错误,以至于找不到反映类的定义。

我不得不把scala-library.jar也作为一个模块依赖包括在内(它也有将它包含在Libraries部分之下的副作用): 在这里输入图像说明

在做完所有这些之前,我安装了Scala插件,创build了一个Android项目,并简单地添加了一个Scala方面(忽略内存设置,我正在愚弄): 在这里输入图像说明

最后,我必须通过在proguard txt文件中添加一些“-dontwarn”行来解决一些剩余的编译错误。 很简单。

奇迹般有效。 还没有做任何实质性的工作,但我期待在我的下一个Android项目上使用Scala。

我写了Scaloid库,使Scala更简洁的Android开发。

为了快速起点,我为Scala + Android写了一个hello-world maven项目。

我使用Intellij作为主要的IDE,并用魅力导入项目。

我在一个月前经历了这个,并且使用Gradle使得它工作得非常好。

结果如下: https : //github.com/ghik/akkdroid

这是一个简单的客户端服务器项目,使用Scala和Akka,客户端使用IntelliJ IDEA开发。 我知道客户端 – 服务器对于Akka来说确实没什么意义,但这只是一个简单的大学项目,可以certificate这些技术可以一起工作。

但是请注意,该项目中的gradle脚本仅用于生成IDEA项目,因此必须进一步扩展才能执行适当的Android应用程序构build。

我一直在看这个线程好几个月,终于有一些时间做了真正的testing。

使用IntelliJ 13与SBT 0.13和Scala 2.10.3。

  1. SBT-Android尚未更新数月。 我发现指示已经过时,我没有设法创build一个工作项目。

  2. android-sdk-plugin工作。 只需按照简单的步骤,我就可以在手机上运行“Hello World”。 但是将SBT项目导入IntelliJ将无法正常工作,需要手动修改项目。

  3. 我也试着先创build一个Android项目,然后添加Scala框架,但没有按照我期望的那样工作。