본문 바로가기

나의 플랫폼/안드로이드

[Apache] Http 관련 라이브러리 사용시 주의사항!!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Httpmime 라이브러리나 Apache 라이브러리를 사용할 때, Dependency 하는 라이브러리 들이 있습니다. 

해당 라이브러리를 추가하지 않으면 실행 중 갑자기 클래스가 존재 하지 않다거나 어떻게 할 수 없는 오류가 발생 한다.

특히 아래와 같은...


NoClassDefFoundError: Failed resolution of: Lorg/apache/http/xxx


아래 화면에서 빨간 네모 부분만 보아라.


## httpmime-4.3.5

http://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime/4.3.5


## httpclient-4.3.5

http://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient/4.3.5


## httpcore-4.3.2

http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.3.2



보시면 Compile Dependencies 가 존재 합니다. 즉, 라이브러리를 정상적으로 컴파일 해서 사용하기 위해선 의존적인 라이브러리가 있다는 의미 입니다.


Httpmime-4.3.5.jar

            Httpclient-4.3.5.jar

                          Httpcore-4.3.2.jar

                          commons-codec-1.6.jar

                          commons-logging-1.1.3.jar


위 형태 같이 의존성이 있는 것입니다.

다 이해하셨겠지만, httpclient를 사용할 때는 httpmime은 필요 없고, httpcore,commons-codec, commons-logging 은 필요하겠죠.

버전도 맞춰줘야 합니다. 

그렇지 않으면 빌드시 에러가 발생 하기도 합니다.


전 아무것도 몰라서 버전 상관 없이 막 사용하다가 이제야 알게 되었네요.

참고하세요.




## 이블로그는 어디까지는 찾았던 부분을 잊지 않기 위해 올려놓은 것 입니다.

    내용이 부실해도 이해해 주시길 바랍니다.