6

このページhttp://zegoggl.es/2009/12/building-android-apps-in-scala-with-sbt.htmlで、SBTを使用してAndroidプロジェクトを作成するビデオをフォローしています。ただし、を使用してエミュレータをインストールしようとするところまで来ました

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 [proguard.ClassPathEntry@550a17fb] (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)
4

5 に答える 5

4

同じ問題がありました。JDK 1.7 を使用していたことが原因であることに気付きました。1.6 で作成された jar は 1.7 で動作しますが、1.6 jar の proguard は 1.7 jar では動作しません。現在、1.7 で利用できるのは Proguard のベータ リリースのみです。そのため、Android ツールと Maven リポジトリには 1.6 jar 用のプロガードがあります。1.7 jar をトリミングしようとすると、そのエラーがスローされます。

この問題を解決するために、JDK 1.6 にダウングレードし、1.7 をアンインストールして、jar が 1.6 JDK ツールで作成されていることを確認しました。

ローカル リポジトリから 1.7 jar を削除するには、~/.ivy2 の下のディレクトリを削除し、プラグインを使用して Android プロジェクトを再作成しました。そして、AndroidプラグインのREADMEをティーにたどりました。

于 2011-11-12T07:52:05.040 に答える
2

リンク先のページにあるように、「注:この記事はしばらく更新されておらず、古くなっています。疑わしい場合は、sbt-android-pluginのREADMEを参照してください。」そこでのreadme(README.md)には、現在のバージョンのscala、sbt、およびAndroidSDKで実際に機能することがわかった唯一の命令セットが含まれています。

私はそれを機能させるためにわずかな微調整をする必要がありました:

  1. sbtスクリプト(おそらく〜/ bin / sbt)を変更し、「-XX:MaxPermSize = 512m」パラメーターを追加します。そうしないと、PermGenスペースが不足します。
  2. オプションで指定できる0.11テンプレートではなく、必ず0.10テンプレート(デフォルト)を使用してください。
  3. 「プラグインのハッキング」セクションにスキップするように指示されたら、必ずスキップしてください。

お役に立てれば。

于 2011-10-09T23:44:10.553 に答える
0

どうやらjdk1.7には互換性がないため、同じ問題がありました。ファイルに、build.scala次の行を追加しました。

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

そしてそれはうまくいきました。

于 2013-04-23T10:51:38.680 に答える
0

私にとっては、プラグイン サイトの説明で十分でした: link .

そのようにしようとしましたか?

于 2011-10-10T08:41:34.643 に答える
0

javaバージョン「1.7.0_51」でエラー「(クラス形式のサポートされていないバージョン番号 [51.0])」が発生しました。

この問題は、Build.scala に javac 互換性行を追加することで修正されました。

val settings = Defaults.defaultSettings ++ Seq (
  ...
  javacOptions ++= Seq("-encoding", "UTF-8", "-source", "1.6", "-target", "1.6")
)
于 2014-03-09T09:52:29.310 に答える