안녕하세요.
이번 포스팅에서 NoSuchMethodError: no static method 가 일어난 하나의 사례와 관련해서 적어보겠습니다.
라이브러리가 분명히 존재하고 있음에도 메소드를 찾을 수 없다고 나오는 경우는
프로가드 때문일 가능성이 많습니다.
gradle에서
minifyEnabled true
이 부분이 코드축소를 설정하는 부분인데요.
코드축소시 해당 라이브러리를 지워 찾을 수 없다는 에러를 가끔 접했습니다.
그래서 이 부분을 어떻게 해결하느냐 하면
안드로이드 스튜디오의 좌측에 앱 구조를 보시면 proguard-rules.pro 라는 파일이 있습니다.
이 파일을 여셔서 찾지 못하는 라이브러리의 패키지 명을 Keep 한다는 내용을 아래와 같이 적습니다.
-keep class com.arthenica.mobileffmpeg.*
-keepclassmembers class com.arthenica.mobileffmpeg.* {*;}
이후 gradle(:app) 파일로 가셔서
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
이렇게 프로가드 사용에 대해 명시하는 세팅을 해주시면 됩니다.
참고
https://developer.android.com/studio/build/shrink-code
'개발 > 삽질' 카테고리의 다른 글
안드로이드 gradle 명령어 정리 (0) | 2022.01.26 |
---|---|
안드로이드 Retrofit 통신시 null로 들어올때 (0) | 2020.12.13 |
안드로이드 로컬파일 접근시 Unexpected SecurityException 에러 (0) | 2020.12.13 |
안드로이드 채팅방 입력 EditText 설정하기 (0) | 2020.08.02 |
안드로이드 내가 만든 라이브러리 배포하는법2(원격) (0) | 2020.06.27 |
댓글