[React-Native] 중국산 스마트폰에서 빌드에러 해결하기 Android






내 테스트기기는 이베이에서 옥션으로 따온 Oukitel K4000라는 홍콩산(?) 스마트폰이다.
대충 아래처럼 투박하게 생겼다.😅


다른나라 제조사 폰들은 괜찮은데 대륙 쪽 기기의 경우(xiaomi, one plus, oppo 등등 포함) 단순히 USB꼳고 react-native run-android만 치면 빌드가 안된다.
스택오버플로우에서는 대부분

  1. adb reserve tcp:8018 tcp:8018
  2. 폴더 권한 문제

요렇게 답해주는데 나는 해결을 못했다...😢

빌드 에러를 쭉 따라가보면 USB로 연결한 기기의 모델이름까지 나오는데(여기선 Oukitel K4000), apk 설치부분에서 문제가 생긴 게 보인다.
이것은 gradle 버전 차이 때문에 발생하는 문제로 나는 아래처럼 편집 후 빌드하여 해결했다.

※ 테스트 환경
  - React-Native: 0.5.x
  - Android SDK: 6.0(마시멜로우)
  - Device: Oukitel K4000/5.1(롤리팝)

1) 앱폴더/android/build.gradle 편집

  - classpath 'com.android.tools.build:gradle:2.2.3' 부분을 classpath 'com.android.tools.build:gradle:1.2.3'로 변경

2) 앱폴더/android/gradle/wrapper/gradle-wrapper.properties 편집

  - distributionUrl을 https://services.gradle.org/distributions/gradle-2.2-all.zip로 변경

3) 앱폴더/android/gradlew에서 CMD 열기
  - ./gradlew clean로 클린 때리기

4) 다시 빌드하기
🕶
  - 기기에서 USB 디버깅/USB를 통해 설치된 앱 확인 해제(롤리팝 5.1 이상~)

덧글

댓글 입력 영역