2011-10-09 6 views
6

이 페이지의 비디오를 따르고 있습니다. http://zegoggl.es/2009/12/building-android-apps-in-scala-with-sbt.html SBT를 사용하여 Android 프로젝트를 만듭니다. 그러나 나는sbt install-emulator를 실행할 때 오류가 발생했습니다.

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

당신이 문제를 해결하기 위해 관리나요 :

이 문제

는 Build.scala에 javac의 호환성 줄을 추가하여 고정? 나는 같은 문제에 직면 해 있으며 어떻게했는지 알고 싶습니다. – Salil

답변

4

나는 동일한 문제가있었습니다. 내가 JDK 1.7을 사용했기 때문에 그것이 실현되었습니다. 1.6으로 생성 된 jar는 1.7에서 작동하지만 1.6 jar에 대한 proguard는 1.7 Jar로는 작동하지 않습니다. 현재 Proguard의 베타 릴리스 만 1.7에서 사용할 수 있습니다. 그래서, 안드로이드 도구와 메이븐 저장소는 1.6 병을위한 proguard 있습니다. 1.7 병을 자르려고하면 오류가 발생합니다.

이 문제를 해결하기 위해 필자는 JDK 1.6으로 다운 그레이드하여 1.7을 제거하고 1.6 JDK 도구로 내 jar 파일을 만들었습니다.

로컬 저장소에서 1.7 병을 제거하려면 ~/.ivy2 아래의 디렉토리를 삭제하고 플러그인을 사용하여 Android 프로젝트를 다시 만들었습니다. 그리고 난 티에 안드로이드 플러그인을위한 README를 따라 갔다.

+0

위의 지원 : https : //github.com/jberkel/android-plugin/issues/102 – RAbraham

+0

자바 1.7 지원에 대한 모든 뉴스? –

2

페이지로 당신이 말한다 링크를 "참고 :이 기사는 'hasn 잠시 후에 업데이트되었고 시대에 뒤떨어졌습니다. 의심스러운 점은 sbt-android-plugin의 README를 참조하십시오. " 거기에있는 readme (README.md)에는 현재 찾은 스칼라, sbt 및 Android SDK의 현재 버전에서 실제로 찾을 수있는 지침 집합 만 포함되어 있습니다. 그렇지 않으면 당신을, 매개 변수 :

  1. 이 SBT 스크립트 (아마도 ~/빈/SBT)을 수정하고 "를 MaxPermSize = 512m -XX"을 추가

    난 일하러 만 사소한 조작했습니다 PermGen 공간이 부족합니다.

  2. 선택적으로 지정할 수있는 0.11 템플릿 대신 0.10 템플릿 (기본값)을 사용하십시오.
  3. 알려 주면 "플러그인의 해킹"섹션으로 건너 뜁니다.

희망이 도움이됩니다.

0

나를 위해, 플러그인 사이트에 대한 설명은 충분했습니다 : link.

그렇게하려고 했습니까?

0

분명히 jdk1.7과 호환되지 않기 때문에 동일한 문제가있었습니다. 내 build.scala 파일에서 , 나는 다음과 같은 라인을 추가 :

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

를하고는했다.

0

자바 버전이 "1.7.0_51"인 "클래스 형식에 대해 지원되지 않는 버전 번호 [51.0]"오류가 발생했습니다.

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