본문 바로가기
Android/Exceptions

ad.loadClass에서 발생하는 ClassNotFoundException

by featherwing 2019. 4. 3.
반응형

앱에서 해당 Exeption을 뿜으며 앱이 종료되는 현상이 갑자기 많이 발생하였습니다.

 

해당 Crash는 아래와 유사합니다.

 

Fatal Exception: java.lang.NoClassDefFoundError
Failed resolution of: Lorg/apache/http/ProtocolVersion;
Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList------

 

이용자들은 아마 영문도 모르고 앱이 종료되는 현상을 겪고 있을겁니다.

 

 

Apache Http 라이브러리가 가 Android 6.0 부터 삭제되었음에도 불구하고,

 

다른 라이브러리가 이것을 자꾸 요청하기 때문에 발생하는 문제입니다.

 

제 경우에는 Apache http 6.0에서 Deprecated 되었다는 내용을 보았으나

 

앱 내부에서 해당 라이브러리를 사용하지 않았기 때문에 신경쓰지 않았는데, 

 

ad.loadClass에서 자꾸 발생하고 있었습니다.

 

즉, 애드몹 배너가 해당 클래스를 자꾸 요청하는 경우가 발생하면서 앱을 종료시키고 있는 것이었습니다.

 

 

해결책은 간단합니다. 

해당 라이브러리를 사용하지 않게 변경해주면 됩니다.

 

AndroidManifest.xml의 application 태그 사이에 

아래와 같은 라인을 삽입해주면 오류가 발생하지 않습니다.

 

<uses-library android:name="org.apache.http.legacy" android:required="false" />
반응형

댓글