2010년 6월 24일 목요일

Launcher를 eclipse에서 빌드 하기

git에서 소스를 받으면 Launcher가 있습니다.
하지만 Eclipse에서 빌드가 되지 않습니다.

그래서 Eclipse에서 빌드하는 방법을 알아 보겠습니다.

android를 빌드 할 수 있는 Linux Host PC가 있어야 합니다.
환경 설정이 끝나면 빌드를 해 둡니다.

Eclipse에서 Launcher란 프로젝트를 생성하고 [git folder]\packages\apps\Launcher 폴더의 내용을 덮어 씁니다.

main.xml이 error가 납니다. main.xml을 삭제합니다.

이제 부터 eclipse상에서 빌드 에러 나는 부분을 하나씩 정리 하도록 하겠습니다.

수정 해야 할 path는 frameworks/base/core/java 폴더 입니다.

frameworks/base/core/java/android/app/Dialog.java:998:
frameworks/base/core/java/android/app/StatusBarManager.java:29:
frameworks/base/core/java/android/app/SearchManager.java:1282:
frameworks/base/core/java/android/view/View.java:1500:
frameworks/base/core/java/android/view/View.java:1552:
frameworks/base/core/java/android/view/View.java:1560:
frameworks/base/core/java/android/view/View.java:1568:
frameworks/base/core/java/android/view/View.java:1576:
frameworks/base/core/java/android/view/View.java:1585:
frameworks/base/core/java/android/view/View.java:1593:
frameworks/base/core/java/android/view/View.java:1696:
frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java:761:
frameworks/base/core/java/android/os/Vibrator.java:29:
frameworks/base/core/java/android/widget/CursorAdapter.java:53:
frameworks/base/core/java/android/content/Context.java:1240:
frameworks/base/core/java/android/content/DialogInterface.java:97:
frameworks/base/core/java/com/android/internal/util/XmlUtils.java:35:

위에 나열된 파일의 line을 보면 @hide가 있습니다. 이부분을 삭제하고 make sdk를 통해 sdk를 만듭니다.

완료가 되면 out/hos/linux-x86/sdk/android-sdk_[lang].[user]_linux-x86.zip이 생성 됩니다.

압축을 풀면 android.com에서 받은 sdk와 동일 구조의 폴더가 생깁니다.

linux에서 빌드된 sdk를 윈도우 버전으로 만드는 방법도 있습니다.

간단하게 기존 sdk에서 [android sdk root]/platforms/android-7/android.jar와 [android sdk root]/platforms/android-7/data/layoutlib.jar를 덮어씁니다.

layoutlib.jar에는 com.android.internal.util.XmlUtils와 같은 anroid.jar에 포함되지 않는 몇몇 class들이 들어 있습니다.

여기서 부터 제가 엄청 삽질 했던 부분입니다. 처음에는 Properties에서 Add JARs...를 통해 layoutlib.jar를 했었는데 아래 에러가 납니다.



Add JARs..가 아니고 Add Library...를 합니다.

아래 그림과 같이 Add Library에서 User Library를 하고 임의의 이름을 선택 후 layoutlib.jar를 선택 합니다.





그럼 몇몇 package에서 찾지 못하던 class들이 에러가 나지 않습니다.

eclipse에서 빌드는 되는데 설치 및 실행은 현재 상태로는 안됩니다. 런처를 설치 하기 위해서는 몇가지 단계가 있어 보입니다.

이 부분은 추후 수정 하도록 하겠습니다.
댓글 쓰기