느릿느릿 프로그래밍
[Android] java.lang.OutOfMemoryError: Failed to allocate a 490166904 byte allocation with 3874212 free bytes and 378MB until OOM 에러 본문
프로그래밍/Android
[Android] java.lang.OutOfMemoryError: Failed to allocate a 490166904 byte allocation with 3874212 free bytes and 378MB until OOM 에러
김슈달 2018. 7. 5. 14:46반응형
| 문제
java.lang.OutOfMemoryError: Failed to allocate a 490166904 byte allocation with 3874212 free bytes and 378MB until OOM
안드로이드 어플 테스트 중 위와 같은 에러가 났다.
이 어플을 테스트 하는 중에 용량과 사이즈가 큰 사진을 여러장 사용했는데, 그것 때문에 메모리초과 에러가 난 것 같았다.
저 에러가 난 코드 부분은 아래와 같았다.
1 | Drawable drawable = getResources().getDrawable(R.drawable.cat1); | cs |
사진의 크기가 상당히 크긴 했지만, 저 사진을 그대로 쓰고 싶어서 코드로 해결하는 방법을 찾아보았다.
| 해결
1. AndroidManifest.xml에 코드 추가
1 2 3 4 5 6 7 8 9 10 | <application android:name=".GlobalApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> | cs |
이 부분에 다음 두 줄을 추가한다.
1 2 | android:hardwareAccelerated="false" android:largeHeap="true" | cs |
2. 이미지 크기 줄이기
그러나 해결되지 않아서 아래 사이트에서 사진 크기를 줄이고 다시 빌드했더니 성공적으로 빌드되었다.
안드로이드에서 고화질의 사진은 어떻게 다뤄야하는지를 공부해야겠다.
https://www.iloveimg.com/ko/resize-image/resize-png
반응형
'프로그래밍 > Android' 카테고리의 다른 글
Comments