Android Studio LatinIME Project Build – 1

1. Git Client 다운로드 & 설치
* https://git-scm.com/downloads
* OS에 맞는 설치파일 다운로드 & 설치

2. Git Bash 실행 & Clone
* clone 받을 폴더로 이동
* git clone https://android.googlesource.com/platform/packages/inputmethods/LatinIME 실행
※ 사이트주소 : https://android.googlesource.com/platform/packages/inputmethods/LatinIME/

3. Android Studio 다운로드 & 설치
* https://developer.android.com/sdk/index.html
* OS에 맞는 설치파일 다운로드 & 설치
* SDK & NDK 설치

4. phone에 빌드를 위해 드라이버 설치

5. Project 생성

6. 자동 생성된 소스 삭제 & LatinIME 소스에서 다음을 복사
* app/src/main/java/삭제
* app/src/main/res/삭제
* app/src/main/java/com.android.inputmethod/
=> java 폴더의 소스 + java-overridable 폴더의 소스
* app/src/main/res
* app/src/main/AndroidManifest.xml (overwrite)

7. APP build & Run 에서 에러 발생 – (1)

Error:Execution failed for task ':app:mergeDebugResources'.
> {APP_PATH}\app\src\main\res\values\strings-emoji-descriptions.xml:259:65: Error: 주석에서 부적합한 XML 문자(유니코드: 0xd83c)가 발견되었습니다.

* {APP_PATH}\app\src\main\res\values\strings-emoji-descriptions.xml 파일을 다른에디터에서 문자셋을 변경해서 복사

8. APP build & Run 에서 에러 발생 – (2)

C:\Users\Administrator\Desktop\OneTouchKey\app\src\main\res\values\colors.xml
Error:(2) Attribute "divider" has already been defined

* build.gradle 파일의 의존성을 다음과 같이 수정한다.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v13:23.0.1'
    //compile 'com.android.support:appcompat-v7:23.0.1'
}

9. APP build & Run 에서 에러 발생 – (3)

Error:(28, 24) error: package javax.annotation does not exist
Error:(184, 6) error: cannot find symbol class Nonnull

app/libs/jsr305-1.3.7.jar 라이브러리 추가

10. APP build & Run 에서 에러 발생 – (4)

Error:(22, 37) error: package com.android.inputmethodcommon does not exist
Error:(35, 42) error: cannot find symbol class InputMethodSettingsFragment
...

* 다음 패키지 추가 : com.android.inputmethodcommon
* 클래스 파일 추가 : InputMethodSettingsActivity.java, InputMethodSettingsFragment.java, InputMethodSettingsImpl.java, InputMethodSettingInterface.java

11. APP build & Run 에서 에러 발생 – (5)

Error:Execution failed for task ':app:compileDebugNdk'.
> Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

* Android Studio 1.3 이상의 경우 기본적으로 Android Gradle Plugin에서 지원하는 방식으로 NDK를 빌드하지만 이전방식을 사용하기 위해서는 gradle.properties파일에 다음내용을 추가

# gradle.properties
android.useDeprecatedNdk=true

12. APP 실행
* 앱이 실행됨을 확인
* 키보드가 동작하기 위해서는 NDK build 설정이 필요하다 이는 따로 블로깅예정
Screenshot_2015-10-02-18-09-24

댓글 남기기