56

正如向我建议的那样,我浏览了几篇描述如何使 IntelliJ Idea 与 Android 和 Scala 协同工作的文章,但事实证明它们都是 1 或 2 年前写的。从那时起,很可能发生了一些变化,现在还有其他解决方案可以实现这一目标。具体来说,有一个新的解决方案https://github.com/yareally/android-scala-intellij-no-sbt-plugin我不知道它是否有效。

我安装并设置了 IntelliJ Idea 12、Android SDK、Scala、SBT 和所有其他东西。剩下的唯一事情是设置 IntelliJ Idea 12 以使其与 Scala 而不是 Java 一起用于创建 Android 应用程序。

请不要关闭问题。我看到以前的问题与我的类似,但是,正如我所说,它们已经过时了。

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

PS 我尝试了 Android Development Studio,但由于许多错误,我什至无法启动它。

4

5 回答 5

21

更新:你可以阅读我写的关于即将推出的新版 SBT-Android (0.7)的教程。您的大部分问题都应该在那里解决。如果他们不是,那么这是一个问题。


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

关于 ProGuard 和构建时间:

  • 我自己我的设备上使用sbt-android. 这完全消除了 ProGuard,但需要 root。

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


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

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

  • 即将推出完整的 IntelliJ 支持(感谢SBTIdea ) (事实上,它已经工作了,我只需要发送拉取请求)
  • 在模拟器或根设备上自动预加载 Scala (只需运行android:preload-{device, emulator},开发不再需要 Proguard!)
  • 应该以最小的努力支持简单的开箱即用的 Gradle 项目(目录结构非常相似)
  • 配置要容易得多(只需添加插件和项目文件就可以了!)

当前版本没有这些细节中的大部分,但它们将在接下来的几周内出现。一些文档当然很快就会出现,包括示例和我会想到的所有内容。

顺便说一下,我鼓励您加入Scala on Android Google Group 并分享您的想法。#sbt-android如果你喜欢 IRC,Freenode上也有一个频道。

于 2013-05-26T21:18:25.220 回答
8

只是想插话。我使用了https://github.com/yareally/android-scala-intellij-no-sbt-plugin,尽管我发现说明很模糊,在此之前从未使用过 IntelliJ。

您现在可能已经解决了所有问题并且对 SBT 感到满意,但出于我的目的,我只想在 Android 上测试 Scala,而不需要所有额外的花里胡哨。所以,为了让 no-sbt-plugin 工作正常,我需要做一些小事情:

我最终将 scala-compiler.jar(连同 scala-library.jar 和 scala-reflect.jar)作为全局库包括在内: 在此处输入图像描述

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

我还必须将 scala-library.jar 作为模块依赖项包含在内(这也具有将其包含在库部分下的副作用): 在此处输入图像描述

在做这一切之前,我安装了 Scala 插件,创建了一个 Android 项目,并简单地添加了一个 Scala 方面(忽略内存设置,我在胡闹): 在此处输入图像描述

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

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

于 2013-07-07T19:02:58.523 回答
5

我编写了Scalaid库,它使 Android 开发更简洁地使用 Scala。

为了快速入门,我为 Scala+Android 编写了一个hello-world maven 项目。

我使用 Intellij 作为主 IDE,它以魅力的方式导入项目。

于 2013-06-22T14:44:45.667 回答
3

大约一个月前我已经完成了这个,我设法使用 Gradle 让它工作得很好。

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

这是一个使用 Scala 和 Akka 的简单客户端-服务器项目,在 Android 上具有客户端,使用 IntelliJ IDEA 开发。我知道客户端-服务器与 Akka 并没有真正的意义,但这只是一个简单的大学项目,以证明这些技术可以协同工作。

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

于 2013-05-25T16:50:37.507 回答
3

我已经看了这个帖子几个月了,终于有时间做真正的测试了。

将 IntelliJ 13 与 SBT 0.13 和 Scala 2.10.3 一起使用。

  1. SBT-Android已经好几个月没有更新了。我发现这些说明已经过时,而且我没有设法创建一个工作项目。

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

  3. 我也尝试过先创建一个 Android 项目,然后添加 Scala 框架,但没有达到我的预期。

于 2014-02-04T16:58:05.640 回答