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。
-
SBT-Android尚未更新数月。 我发现指示已经过时,我没有设法创build一个工作项目。
-
android-sdk-plugin工作。 只需按照简单的步骤,我就可以在手机上运行“Hello World”。 但是将SBT项目导入IntelliJ将无法正常工作,需要手动修改项目。
-
我也试着先创build一个Android项目,然后添加Scala框架,但没有按照我期望的那样工作。