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. 원인분석

  -참조 : http://stackoverflow.com/questions/22733322/aidl-file-in-android-project-strange-package-syntax-error

  - 세부 원인 : 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를 사용했을 가능성이 높다.