화면전환시 자꾸 에러가 나는데요..
에러메세지를 보면 setContentView에서 난 에러가 맨 위에있고
좀 밑으로 가다보면 out of memory가 있는데..
갤s에선 나지도 않는게 갤3이랑 갤탭에선 왜 나는건지 이해할수가없네요...
비트맵 많이 들어간 본겜도 아니고
그냥 본겜 들어가기전에 메인메뉴 들어가는데 거기서 오류가 나버리니 참..
다른 갤3도 그런지 제꺼만 그런지는 사실 모르겠지만...
이게 대체 무슨일일까요....
01-18 00:21:08.708: E/AndroidRuntime(22715): FATAL EXCEPTION: main
01-18 00:21:08.708: E/AndroidRuntime(22715): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.intentexample2/com.example.intentexample2.a5_MapSelect}: android.view.InflateException: Binary XML file line #84: Error inflating class <unknown>
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.ActivityThread.access$700(ActivityThread.java:140)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.os.Handler.dispatchMessage(Handler.java:99)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.os.Looper.loop(Looper.java:137)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.ActivityThread.main(ActivityThread.java:4946)
01-18 00:21:08.708: E/AndroidRuntime(22715): at java.lang.reflect.Method.invokeNative(Native Method)
01-18 00:21:08.708: E/AndroidRuntime(22715): at java.lang.reflect.Method.invoke(Method.java:511)
01-18 00:21:08.708: E/AndroidRuntime(22715): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
01-18 00:21:08.708: E/AndroidRuntime(22715): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
01-18 00:21:08.708: E/AndroidRuntime(22715): at dalvik.system.NativeStart.main(Native Method)
01-18 00:21:08.708: E/AndroidRuntime(22715): Caused by: android.view.InflateException: Binary XML file line #84: Error inflating class <unknown>
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.createView(LayoutInflater.java:613)
01-18 00:21:08.708: E/AndroidRuntime(22715): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-18 00:21:08.708: E/AndroidRuntime(22715): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:308)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.Activity.setContentView(Activity.java:1924)
01-18 00:21:08.708: E/AndroidRuntime(22715): at com.example.intentexample2.a5_MapSelect.onCreate(a5_MapSelect.java:41)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.Activity.performCreate(Activity.java:5206)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
01-18 00:21:08.708: E/AndroidRuntime(22715): ... 11 more
01-18 00:21:08.708: E/AndroidRuntime(22715): Caused by: java.lang.reflect.InvocationTargetException
01-18 00:21:08.708: E/AndroidRuntime(22715): at java.lang.reflect.Constructor.constructNative(Native Method)
01-18 00:21:08.708: E/AndroidRuntime(22715): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
01-18 00:21:08.708: E/AndroidRuntime(22715): ... 26 more
01-18 00:21:08.708: E/AndroidRuntime(22715): Caused by: java.lang.OutOfMemoryError
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:623)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:476)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.content.res.Resources.loadDrawable(Resources.java:2039)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.view.View.<init>(View.java:3444)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.widget.TextView.<init>(TextView.java:574)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.widget.Button.<init>(Button.java:107)
01-18 00:21:08.708: E/AndroidRuntime(22715): at android.widget.Button.<init>(Button.java:103)
01-18 00:21:08.708: E/AndroidRuntime(22715): ... 29 more
아니 다른데서도 안되면 그나마 이해를 하겠는데
왜 ...
01-18 08:59:48.769: E/dalvikvm-heap(9406): Out of memory on a 228816-byte allocation.
저 오류들이 뜨기 전에 나오는 오류입니다 이게 문제인건지 ㅜㅜ..
삼성에서 젤리빈으로 업그레이드를 하면서 오플 힙메모리를 많이 줄여 버렸더군요....
뭐 젤리빈의 특성인지 삼성에서 일부러 줄인건지.... 알수 없는 노릇이지만.....
또 겔2가 괴물같을 정도로 힙메모리를 많이 잡아준것도 한 몫합니다....
머 결과는 겔2가 이상할 정도로 어플힙메모리가 많이 할달되어있습니다.
메모리 이슈가 있는 어플은 겔2가 테스틑 기기로 적절하지 못합니다.
항상 안드로이드는 삼성폰이 문제가 되죠..
삼성 자체에서 따로 커스터마이징을 하는지, 여튼 삼성폰을 가장 많이 사용하고있기 때문에
분명히 해결해야 할것같습니다..
OOM 문제가 아닌 것 같은데요..?
로그 첫줄에 인플레이트 에러라고 나와있네요.
onCreate에서 setContentView 할 때 레이아웃파싱이 안되서 에러가 뜨는 것 같네요.
해당 xml에서 확인해보세요
갤s와 그 이하버전은 오히려 메모리가 넉넉합니다.
갤노트나오고 아이스크림샌드위치 나오면서부터 메모리오류가 엄청나게 뜨기 시작했습니다.
native 영역을 아주많이 줄였다고 들었는데, 메모리관리를 아이폰 수준으로 하지 않는이상 OOE를 피해가긴 힘들거같군요.
이미지를 로드할때 크기를 반드시 해상도에 맞게 줄여서 로드하시고, 쓴후엔 반드시 해제를 하세요.
그리고 xml에 레이아웃에 이미지를 백그라운드로 붙여놓거나 이미지뷰에 붙여놓을 경우엔 사용안하는 경우에도 이미 메모리영역을 잡고있으므로, 항상 사용하는 이미지가 아니라면 xml에서 잡아두지마시고 소스코드에서 16비트 형식으로 bitmap으로 불러와서 붙이고 해제하세요.
native 영역 메모리는 얼마안되요. 직접 2048 x 2048 이미지 한장만들어서 이미지뷰에 붙여보세요.
바로 out of memory뜹니다.
한장이라도 크기 계산안해서 띄우면 바로 뻗어버립니다.




로그를 보여주셈