[Android] syntax error don't know what to do with package
Android 에서 AIDL 적용시에 아래와 같은 에러가 나오는 경우가 있다.
그런데, syntax 상으로는 전혀 문제가 없음에도 에러가 발생한다.
(syntax 상으로 문제가 있을 수 있는 경우는 ';'을 문장의 끝에 넣지 않는 실수를 하는 경우가 있는데,
이는 eclipse 에러 메시지로도 확인할 수 있다)
1. Code (No Syntax Error, but build error occured)
package com.example.aidltest; import com.example.aidltest.ITimeCallback; interface ITimeService { // ... } |
2. Error Message (Build Time)
syntax error don't know what to do with package |
3. 원인분석
- 세부 원인 : Edit 창에서는 보이지 않지만 CR 만 있고 LF 가 없는 경우에 발생한다.
4. Solution
에러가 발생한 위치에서 한칸 띄기를 없애고 다시 "Enter"를 눌러 새로 한칸띄기를 하면 쉽게 해결할 수 있다.
예를 든다면. 위의 코드를 다음과 같이 에디트하면된다.
4.1 첫번째 줄에서 Error 발생
package com.example.aidltest; <<<<< Error : syntax error don't know what to do with package import com.example.aidltest.ITimeCallback; interface ITimeService {
} |
4.2 Eclipse EDIT 창에서 다음과 같이 에러가 난 위치에서 한칸을 지웠다가 다시 한칸을 띄어준다.
A. "Delete"를 이용하여 한칸 띄움을 없앤다.
package com.example.aidltest; import com.example.aidltest.ITimeCallback; interface ITimeService {
} |
B. "Enter"를 눌러 다시 한칸을 띄운다.
package com.example.aidltest; import com.example.aidltest.ITimeCallback; interface ITimeService {
} |
C. 다시 빌드를 해보자
- 에러가 없어지는 것을 알 수 있다.
- 만약 그래도 에러가 사라지지 않는다면 아직 syntax error나 아직 정의되지 않은 class를 사용했을 가능성이 높다.