如何在 IntelliJ IDEA(社区版)中使用 Scala 源构建 Android 项目?
我正在尝试在 IntelliJ IDEA(社区版)中使用 Scala 源代码构建一个 Android 项目。我正在使用 Java 文件中的 Scala 源:自动完成工作正常,但构建无法解析 Java 中的 Scala 类:找不到符号类 MyScalaClass
。
(我在 Eclipse 中做到了这一点,但 Eclipse 中的 Scala 支持很差。)
有任何提示或教程吗?
更新:除了 Android 模块之外,我还添加了 Scala 模块。现在,在生成 classes.dex
期间构建失败,并显示消息:
Error: trouble writing output: format == null
我发现这是 Dalvik 的限制:问题 7147。
如何在不使用 Ant 脚本的情况下删除 IDEA 中未使用的方法/类? (我在 Ant 脚本中使用 ProGuard,但无法让 IDEA 从 Ant 结果中解析 Scala 错误消息。)
I am trying to build an Android project with Scala sources in IntelliJ IDEA (Community Edition). I am using Scala sources from Java files: auto-complete works correctly, but build cannot resolve Scala classes in Java: cannot find symbol class MyScalaClass
.
(I managed that in Eclipse, but Scala support in Eclipse is poor.)
Any hints or tutorials?
Update: I have added Scala module in addition to Android module. Now, build fails during generating classes.dex
with message:
Error: trouble writing output: format == null
I found that it is a limitation of Dalvik: issue 7147.
How can I strip unused methods/classes in IDEA without using Ant script? (I was using ProGuard in Ant script, but I was unable make IDEA to parse Scala error messages from Ant results.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
scala/java 系统要求您:
- 首先构建 scala,为编译器提供 scala 和 java 文件。
- 使用 javac 路径中已编译的 scala 类构建 java 源。
第二个可能是你所缺乏的。请参阅如何将目录添加到 intellij idea 中的应用程序运行配置文件中的类路径? 将类路径添加到 Intellij (我想您是为 android 运行时执行此操作的,所以您可能已经知道了)。
The scala/java system requires that you:
- Build scala first, giving the compiler both scala and java files.
- Build the java sources with the compiled scala classes in the path for javac.
The second is probably what you lack. Refer to how to add directory to classpath in an application run profile in intellij idea? to add a classpath to Intellij (I suppose you did it for the android runtime, so you probably already know it).
您应该使用 ProGuard 来删除未使用的类。
按照此处的说明进行操作(具体请查看
progaurd-project.txt
:You should use ProGuard to strip down unused classes.
Follow the instructions here (Specifically take a look at the
progaurd-project.txt
:https://github.com/yareally/android-scala-intellij-no-sbt-plugin