2011-10-09 69 views
6

我正在关注此页面上的视频http://zegoggl.es/2009/12/building-android-apps-in-scala-with-sbt.html,它们使用SBT创建Android项目。不过我可以尝试使用运行sbt安装模拟器时出错

sbt install-emulator 

安装模拟器点我也得到了以下错误:

[info] Nothing to compile. 
    [info] Post-analysis: 1 classes. 
    [info] == tests/compile == 
    [info] 
    [info] == awesomepad/proguard == 
    ProGuard, version 4.4 
    ProGuard is released under the GNU General Public License. The authors of all 
    programs or plugins that link to it (sbt, ...) therefore 
    must ensure that these programs carry the GNU General Public License as well. 
    Reading program directory [C:\Projects\Scala\sbt2test\awesomepad\target\scala_2. 
    9.1\classes] 
    java.io.IOException: Can't read [[email protected]] (Can't proces 
    s class [com/kickass/awesomepad/R$attr.class] (Unsupported version number [51.0] 
    for class format)) 
      at proguard.InputReader.readInput(InputReader.java:230) 
      at proguard.InputReader.readInput(InputReader.java:200) 
      at proguard.InputReader.readInput(InputReader.java:178) 
      at proguard.InputReader.execute(InputReader.java:78) 
      at proguard.ProGuard.readInput(ProGuard.java:195) 
+0

你设法解决这个问题?我面临同样的问题,并想知道你是如何做到的。 – Salil

回答

4

我有同样的问题。我意识到这是因为我使用的是JDK 1.7。虽然用1.6创建的罐子在1.7上工作,1.6罐子的proguard却不能用1.7罐子工作。目前,只有1.7版本的Proguard beta版本可用。所以,android工具和maven仓库有1.6个罐子的proguard。当它试图裁减1.7个罐子时,会抛出该错误。

为了解决这个问题,我降级到JDK 1.6,卸载1.7并确保我的罐子1.6 JDK工具创建的。

要从本地存储库中删除1.7个jar文件,我只是删除了〜/ .ivy2下的目录并使用插件重新创建了android项目。我只是按照android插件的README来开球。

+0

支持以上内容:https://github.com/jberkel/android-plugin/issues/102 – RAbraham

+0

关于支持java 1.7的任何消息? –

2

由于页面链接到说,“注:本文不是招” t已经更新了一段时间,并且已经过时,有疑问请参考sbt-android-plugin的README。“其中的自述文件(README.md)包含我已经能够发现的唯一一组指令,该指令实际上适用于当前版本的scala,sbt和Android SDK。

我不得不做出只小的调整,得到它的工作:

  1. 修改您的SBT脚本(可能是〜/斌/ SBT),并添加了“-XX:MaxPermSize参数=512米”参数,否则你用尽PermGen空间
  2. 确保使用0.10模板(默认值)而不是0.11,您可以选择指定。
  3. 确保当它告诉您时跳到“插件上的黑客”部分。

希望这会有所帮助。

0

对我而言,插件网站上的描述就足够了:link

你试过这样做吗?

0

因为显然jdk1.7不兼容,所以我遇到了同样的问题。 在我build.scala文件,添加以下行:

javaHome := Some(file("c:\\Program Files\\Java\\jdk1.6.0_35")) 

,然后它的工作。

0

我获得错误“(不支持的版本号[51.0]类格式)”用java版本“1.7.0_51”。

此问题固定加入javac的兼容性行Build.scala:

val settings = Defaults.defaultSettings ++ Seq (
    ... 
    javacOptions ++= Seq("-encoding", "UTF-8", "-source", "1.6", "-target", "1.6") 
)