2011-10-12 2 views
3

sbt android plugin에서 스칼라 전용 프로젝트 템플릿을 성공적으로 빌드했습니다. 다음으로 프로젝트에 Java 소스를 추가하려고 시도했으며 TR.scala에서 다음 오류가 발생했습니다. TR.scala는 Java 소스에서 생성 된 파일입니다.sbt : object app이 패키지의 구성원이 아닙니다.

[info] Compiling 2 Scala sources and 5 Java sources to D:\Workspaces\MyProject\my-project\target\scala-2.9.0-1\classes... 
[error] D:\Workspaces\MyProject\my-project\target\src_managed\main\scala\com\mydomain\myproject\TR.scala:2: object app is not a member of package com.mydomain.myproject.android 
[error] import android.app.Activity 
[error]    ^
[error] D:\Workspaces\MyProject\my-project\target\src_managed\main\scala\com\mydomain\myproject\TR.scala:3: object view is not a member of package com.mydomain.myproject.android 
[error] import android.view.View 
[error]    ^
[error] two errors found 
[error] {file:/D:/Workspaces/MyProject/my-project/}My Project/compile:compile: Compilation failed 
[error] Total time: 5 s, completed Oct 12, 2011 11:20:55 AM 

답변

2

Google 그룹스에서 Yifan Yu 님의 response 덕분에 sbt Android plugin에 버그가있는 것으로 보입니다. 감사합니다 Jan Berkel, 버그 수정에 대한 this release. 이 'com.mydomain.myproject'에 TR.scala를 컴파일 할 때 그것이 상대 경로로 'android.whatever'으로 생각하기 때문에

당신은, 그래서 는 컴파일러를 혼란, 패키지 경로가 com.mydomain.myproject.android라는 이름의이 . 플러그인이 생성하는 Activity 소스에 _root_. 앞에 추가하려고 시도하지만 나중에 TR.scala.

+0

위해 이렇게 년의 수를 어떻게 잊어, 나는 비슷한 오류가 발생하고 안드로이드 패키지의 이름을 변경하고있어했다. 이것은 https://github.com/ajhager/libgdx-sbt-project.g8 libgdx 코드를 통해 최신 android-sdk-plugin 코드를 사용하고 있습니다. –

1

글쎄, 당신은 당신이 한 정확히 언급하지 않았다 ("일부 자바 소스를 추가"데요? 어떻게? & 붙여 넣기 코드를? 절단하는? 뭐? 코드?), 그것은 하드를 제공 할 수 있습니다 좋은 대답. 그러나 설명은 실제로 오류 메시지에서 간단합니다.

"android.app.Activity 가져 오기"를 수행하면 오류가 발생합니다. 당신이 말한 Java 소스일까요? 음, 나는 모른다. 하지만 메시지에 이렇게 적혀 있기 때문에 가져온 패키지 또는 패키지 com.mydomain.myproject.android 안에 있다는 것을 알고 있습니다.

package com.mydomain.myproject.android 
import com.mydomain.myproject._ 
import com.mydomain.myproject.android 

전에 다른 수입 : 다른 말로하면, 당신은 다음 중 하나가 있습니다. 무슨 의미하는 것은 다음 두 줄이 해당 될 것입니다 : 당신이 원하는 아마 하지입니다

import android.app.Activity 
import com.mydomain.myproject.android.app.Activity 

. android.app.Activity을 절대 참조로 사용 하시겠습니까? 음, 그렇지 않습니다. 이 같은이 절대 만들 수 있습니다

import _root_.android.app.Activity 

또는 당신은 당신의 프로젝트에 android라는 이름의 패키지를 가질 수 없습니다.