Gradle 설정을 SDK 23으로 올리고 빌드를 하고 나니 첫번째 에러가 org.apache.http 를 찾을수 없다는 에러입니다.
마시멜로(안드로이드 6.0)에는 더 이상 org.apache.http 모듈이 포함되지 않습니다. 필자의경우에는 전체 소스중에 딱 한 모듈에서 apache http 모듈을 사용하고 있어서 실제로는 HttpURLConnection으로 변경하는 작업으로 대응했습니다.
9월 Google Developers Summit에서 들었지만 역시 격어보니 앞으로 마시멜로 대응할 걱정이 샘솟는군요...
다행히도 안드로이드 M 오픈 테스트 랩에 참여해서 테스트를 할 수 있었는데 레거시모드로 동작했을때 필자의 앱들은 특별한 문제를 일으키지 않았습니다....만, 사용자가 임의로 퍼미션을 날려버리게되면 더 이상 앱이 진행되지 않는 상황이 발생하긴 했습니다. SDK 23 에뮬레이터 이미지를 이용해서라도 테스트해보시길 추천드립니다.
HOW?
하지만 구글님은 역시 해결책을 제공해 주고 있습니다. 가장 간단한 방법은 "org.apache.http.legacy" 라이브러리를 추가하면 됩니다. 실행하려는 모듈의 build.gradle 파일을 열고 아래의 이미지 처럼 한줄만 추가해주면 됩니다.
useLibrary 'org.apache.http.legacy' |
빌드는 성공했지만 아래 그림처럼 아직도 실제 소스에서는 라이브러리 클래스를 찾지 못한다고 에러가 보입니다.
사실 이상태에서 바로 빌드를하면 정상적으로 빌드가 되지만 안드로이드 스튜디오의 구문해석기가 에러를 뿜었기 때문에
dependencies에 아래처럼 라이브러리를 추가합니다.
*이 부분은 gradle wrapper가 버전업되거나 android studio가 업데이트 되면 생략해도 될 것으로 보입니다.
이 과정을 생략한다고 해도 실제로 빌드할때 문제가 발생하지는 않습니다.
(필자는 gradle 1.3.0과 안드로이드 스튜디오 1.4 베타버전을 사용중입니다.)
dependencies {
provided 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.
http.client:4.1.2'
}
'Android' 카테고리의 다른 글
윈도우 10에서 Android Studio Terminal(터미널) 동작 안할 경우 해결 방법 (0) | 2016.03.21 |
---|---|
<Android> 우체국 오픈API를 활용한 우편번호 조회 예제 (0) | 2016.03.11 |
Android Studio에서 라이브러리 추가하기 (0) | 2016.03.08 |
GPS 설정 체크 (0) | 2016.03.07 |
서브 액티비티에서 메인 액티비티로 데이터 전송하기 (0) | 2016.03.03 |