2021년 4월 8일 목요일

[android, java] Didn't find class "android.view.View$OnUnhandledKeyEventListener" 오류 발생

새로 테스트 프로젝트를 생성하고 실행 해 봤더니 오류가 난다.


Didn't find class "android.view.View$OnUnhandledKeyEventListener" 
라는 오류가 나는데 뭐 한것도 없는데 오류가 난다.

뭔가 버젼 쪽 설정 문제인것 같은데, 인터넷에서 검색해보니 해결책이 중구 난방이다.
정확히 뭐가 문제인지 알수가 없으니 어느것이 정확한 해결책인지도 모르겠다.


하여간 나의 경우는.

configurations.all {
resolutionStrategy.eachDependency { details ->
def requested = details.requested
if (requested.group == "androidx.appcompat") {
if (!requested.name.startsWith("multidex")) {
details.useVersion "1.+"
}
}
}
}

build.gradle 파일에 뭔가 알수 없는 문구를 추가해 주니 해결되었다.

정말 어렵다 어려워...
 


※파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

2021년 3월 31일 수요일

[android, java] "trying to draw too large bitmap" 오류가 발생할때.

앱을 만드는 중 별것 한것도 없는데 오류가 난다.


"trying to draw too large bitmap" 라는 오류가 발생하는데 이미지가 너무 크다는 오류겠지만, 리소스를 찾아보니 별로 크지도 않은데 오류가 난다. (애초에 저런 크기의 이미지 자체가 없다)

이 오류의 해결 방법을 찾아 보니 몇가지가 나오다.

가장 간단한 방법은 "하드웨어 가속을 해제하는것".

하드웨어 가속과 이미지 큰게 무슨 상관인지는 모르겠으나, "AndroidManifest.xml" 파일내 <application> 항목에  android:hardwareAccelerated="false" 한줄만 추가해 주면 간단히 해결이 된다.

하지만, 하드웨어 가속을 써야만 하는 경우라면 다른 해결법이 필요하다.

이미지가 너무 크기 때문에 발생하는 오류 (엄밀히 말하면 높은 해상도 때문) 라서 높은 해상도 파일은 높은 해상도 파일로 구분해 주면 된다.

일단 리소스 폴더인 "drawable" 의 위치를 탐색기로 연다.


기본적으로 drawable 과 drawable-v24 폴더만 있을 것인데, 여기에 drawable-xxxhdpi 폴더를 생성해 준다.

그리고 높은 해상도를 가진 파일 (일판적으로 크기가 큰 파일) 들을 여기로 이동해 준다.


그러면 안드로이드 스튜디오의 "drawable"  폴더에 각 파일들이 각각 구분되어 나오는데 "xxxhdpi" 로 구분되는 파일들은 높은 해상도를 가지고 있어서 표시가 된다.

원래는 각 해상도 별로 각각 그 폴더에 그 해상도의 이미지를 넣어줘야 정상이 겠으나...

어쨌든 대부분은 이렇게 해결이 된다.