2011-10-09 68 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") 
)