이미지를 캡쳐하는 어플을 만들었는데 저장하기 버튼을 누르면 캡쳐가 되는 기능이었다.


그런데 저장하기를 누르니까


java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
at android.graphics.Bitmap.createBitmap(Bitmap.java:585)
at com.project.app.ResultActivity.onClick(ResultActivity.java:860)

at android.view.View.performClick(View.java:3531)
at android.view.View$PerformClick.run(View.java:14125)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4449)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)


이런 에러가 나타났다. 그래서 해결책을 찾고 있었는데 다 recycle()이거나 BitmapFactory등등 뭔가 복잡했다.

내 실력으로는 잘 이해가 안갔다.

그러다 되게 간단해 보이는 방법을 찾았는데

AndroidManifest.xml 파일에


<application>

....

android:largeHeap="true"

....

</application>


어플리케이션 부분에 이 옵션을 주는 것이었다.  어플리케이션에 메모리할당을 더 크게 늘려주는 옵션이라나... 

아무튼 적용해보니 에러가 발생하지 않았다.

감격 ㅠㅠ

물론 이게 100%해결책은 아니지만 가장 간단한 해결책이 되지 않을까 싶다.




  1. ddd 2014.01.21 09:59 신고

    임시방편이될수있지만 좋은방법은아닙니다.ㅜ

    • todriver08 2014.01.21 13:39 신고

      저도 급해서 일단 이걸로 했는데

      더 좋은 방법이 있나요?

      궁금합니다.

      http://gyjmobile.tistory.com/entry/%ED%81%B0-%EB%B0%B0%EA%B2%BD%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%82%AC%EC%9A%A9%EC%8B%9C-OutOfMemoryError%EC%9D%98-%ED%99%95%EC%8B%A4%ED%95%9C-%ED%95%B4%EA%B2%B0%EB%B2%95#comment11561742

      이 글도 한번 봐주실 수 있으신가요?

    • asdfasdf 2016.05.26 17:03 신고

      좋은방법이 아닌게 아니라 그렇게 사용하면 안되는 거임.

    • todriver08 2016.05.26 17:06 신고

      이게 예전에 올린거라 지금은 폰 사양이 좋기도 하구요.. 저 방법 말고 새로운 방법이 있나요?

+ Recent posts