0

몇 개의 이미지가있는 레이아웃을 만드는 동안 OutOfMemoryError가 있습니다.메모리가 부족합니다. InflateException 이진 XML 파일 Android

In line 여기서 logcat은 내가 오류를 표시합니다. TextView를 선언하기 시작합니다.

오류가 Samsung Galaxy S4에 있습니다. HTC Desire X에서 앱을 실행할 때 오류가 없습니다.

무엇이 그 원인 일 수 있으며 어떻게 해결할 수 있습니까?

10-21 18:32:19.243: E/dalvikvm-heap(20015): Out of memory on a 15822016-byte allocation. 
10-21 18:32:19.243: I/dalvikvm(20015): "main" prio=5 tid=1 RUNNABLE 
10-21 18:32:19.243: I/dalvikvm(20015): | group="main" sCount=0 dsCount=0 obj=0x41d6cea0 self=0x41d5b538 
10-21 18:32:19.243: I/dalvikvm(20015): | sysTid=20015 nice=0 sched=0/0 cgrp=apps handle=1074303316 
10-21 18:32:19.243: I/dalvikvm(20015): | state=R schedstat=(0 0 0) utm=235 stm=203 core=2 
10-21 18:32:19.243: I/dalvikvm(20015): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
10-21 18:32:19.243: I/dalvikvm(20015): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:677) 
10-21 18:32:19.243: I/dalvikvm(20015): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:507) 
10-21 18:32:19.243: I/dalvikvm(20015): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:872) 
10-21 18:32:19.243: I/dalvikvm(20015): at android.content.res.Resources.loadDrawable(Resources.java:3056) 
10-21 18:32:19.243: I/dalvikvm(20015): at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
10-21 18:32:19.253: I/dalvikvm(20015): at android.view.View.<init>(View.java:3694) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.widget.TextView.<init>(TextView.java:898) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.widget.TextView.<init>(TextView.java:893) 
10-21 18:32:19.263: I/dalvikvm(20015): at java.lang.reflect.Constructor.constructNative(Native Method) 
10-21 18:32:19.263: I/dalvikvm(20015): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
10-21 18:32:19.263: I/dalvikvm(20015): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
10-21 18:32:19.263: I/dalvikvm(20015): at com.example.fragments.LocalApiFragment.onCreateView(LocalApiFragment.java:40) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.os.Handler.handleCallback(Handler.java:733) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.os.Handler.dispatchMessage(Handler.java:95) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.os.Looper.loop(Looper.java:157) 
10-21 18:32:19.263: I/dalvikvm(20015): at android.app.ActivityThread.main(ActivityThread.java:5356) 
10-21 18:32:19.263: I/dalvikvm(20015): at java.lang.reflect.Method.invokeNative(Native Method) 
10-21 18:32:19.263: I/dalvikvm(20015): at java.lang.reflect.Method.invoke(Method.java:515) 
10-21 18:32:19.263: I/dalvikvm(20015): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 
10-21 18:32:19.263: I/dalvikvm(20015): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 
10-21 18:32:19.263: I/dalvikvm(20015): at dalvik.system.NativeStart.main(Native Method) 
10-21 18:32:19.263: D/skia(20015): --- allocation failed for scaled bitmap 
10-21 18:32:19.263: D/AndroidRuntime(20015): Shutting down VM 
10-21 18:32:19.263: W/dalvikvm(20015): threadid=1: thread exiting with uncaught exception (group=0x41d6bda0) 
10-21 18:32:19.263: E/AndroidRuntime(20015): FATAL EXCEPTION: main 
10-21 18:32:19.263: E/AndroidRuntime(20015): Process: com.example, PID: 20015 
10-21 18:32:19.263: E/AndroidRuntime(20015): android.view.InflateException: Binary XML file line #36: Error inflating class <unknown> 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.createView(LayoutInflater.java:626) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at com.example.fragments.LocalApiFragment.onCreateView(LocalApiFragment.java:40) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1504) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:942) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.os.Handler.handleCallback(Handler.java:733) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.os.Handler.dispatchMessage(Handler.java:95) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.os.Looper.loop(Looper.java:157) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.app.ActivityThread.main(ActivityThread.java:5356) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at java.lang.reflect.Method.invokeNative(Native Method) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at java.lang.reflect.Method.invoke(Method.java:515) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at dalvik.system.NativeStart.main(Native Method) 
10-21 18:32:19.263: E/AndroidRuntime(20015): Caused by: java.lang.reflect.InvocationTargetException 
10-21 18:32:19.263: E/AndroidRuntime(20015): at java.lang.reflect.Constructor.constructNative(Native Method) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
10-21 18:32:19.263: E/AndroidRuntime(20015): ... 23 more 
10-21 18:32:19.263: E/AndroidRuntime(20015): Caused by: java.lang.OutOfMemoryError 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:677) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:507) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:872) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.content.res.Resources.loadDrawable(Resources.java:3056) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.view.View.<init>(View.java:3694) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.widget.TextView.<init>(TextView.java:898) 
10-21 18:32:19.263: E/AndroidRuntime(20015): at android.widget.TextView.<init>(TextView.java:893) 
10-21 18:32:19.263: E/AndroidRuntime(20015): ... 26 more 
+0

가능성이 비트 맵은 최소한의 색 깊이, 부당 크다. –

+0

귀하의 XML을 게시하십시오 .. –

답변

0

비트 맵이 너무 무겁습니다. 크기를 변경 (예 : 김프)하고 다시 시도하십시오.

+0

모든 드로어 블 리소스가 2.5MB를 차지할 때 어떻게 가능합니까? – piotrekso91

+0

픽셀 단위의 해상도는 무엇입니까? – RPallas

+0

배경 이미지가 1000x640이고 다른 모든 것이 더 작습니다. 나는 모든 이미지를 폴더 drawable-nodpi 앱에 넣을 때 더 빨리 실행되고 메모리 부족 예외는 없지만 일부 사진은 아주 작습니다. 더 큰 해상도로 이미지를 만들고 적절한 폴더에 넣어야합니까? – piotrekso91

0

저는 Galaxy S4와 같은 대부분의 HiDef 장치에서도이 문제를 발견했습니다. HiDef 장치가 드로어 블을 팽창시키기 위해 xhdpi, xxhdpi 등을 사용하기 때문입니다. 그들이 찾지 못했을 때, 프로그램 적으로 스케일링하여 OutOfMemory 예외를 발생시킵니다. 그래서 해결책은 hdpi, xhdpi, xxhdpi, xxhdpi 폴더에 드로어 블을 놓는 것입니다.

samsung helpdesk source

관련 문제