2013-08-16 3 views
0

휴대 전화와 태블릿의 레이아웃이 다른 앱을 만들고 있습니다. 타블렛 레이아웃의 경우 레이아웃 -sw600, 레이아웃 -sw600- 랜드, 레이아웃 -sw720 및 레이아웃 -sw720- 랜드 폴더를 사용합니다. 하지만 태블릿이나 avd 태블릿에서 앱을 열면 즉시 충돌이 발생합니다. 휴대 전화에서 실행하면 레이아웃이 정상적으로 작동합니다. 무엇이 문제 일 수 있습니까? 매니페스트에 뭔가를 지정해야합니까? 도와주세요. 나는 로그 캣 오류를 붙여 넣습니다태블릿 레이아웃 폴더를 사용하면 앱이 손상됩니다.

08-16 22:30:13.124: W/dalvikvm(894): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
08-16 22:30:13.234: E/AndroidRuntime(894): FATAL EXCEPTION: main 
08-16 22:30:13.234: E/AndroidRuntime(894): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mreprogramming.ultimateentitydetector/com.mreprogramming.ultimateentitydetector.MainActivity}: android.view.InflateException: Binary XML file line #153: Error inflating class <unknown> 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.os.Looper.loop(Looper.java:137) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.ActivityThread.main(ActivityThread.java:5041) 
08-16 22:30:13.234: E/AndroidRuntime(894): at java.lang.reflect.Method.invokeNative(Native Method) 
08-16 22:30:13.234: E/AndroidRuntime(894): at java.lang.reflect.Method.invoke(Method.java:511) 
08-16 22:30:13.234: E/AndroidRuntime(894): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
08-16 22:30:13.234: E/AndroidRuntime(894): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
08-16 22:30:13.234: E/AndroidRuntime(894): at dalvik.system.NativeStart.main(Native Method) 
08-16 22:30:13.234: E/AndroidRuntime(894): Caused by: android.view.InflateException: Binary XML file line #153: Error inflating class <unknown> 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
08-16 22:30:13.234: E/AndroidRuntime(894): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
08-16 22:30:13.234: E/AndroidRuntime(894): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.Activity.setContentView(Activity.java:1881) 
08-16 22:30:13.234: E/AndroidRuntime(894): at com.mreprogramming.ultimateentitydetector.MainActivity.onCreate(MainActivity.java:45) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.Activity.performCreate(Activity.java:5104) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
08-16 22:30:13.234: E/AndroidRuntime(894): ... 11 more 
08-16 22:30:13.234: E/AndroidRuntime(894): Caused by: java.lang.reflect.InvocationTargetException 
08-16 22:30:13.234: E/AndroidRuntime(894): at java.lang.reflect.Constructor.constructNative(Native Method) 
08-16 22:30:13.234: E/AndroidRuntime(894): at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
08-16 22:30:13.234: E/AndroidRuntime(894): ... 24 more 
08-16 22:30:13.234: E/AndroidRuntime(894): Caused by: java.lang.OutOfMemoryError 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.content.res.Resources.loadDrawable(Resources.java:1965) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.view.View.<init>(View.java:3330) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.widget.ImageView.<init>(ImageView.java:114) 
08-16 22:30:13.234: E/AndroidRuntime(894): at android.widget.ImageView.<init>(ImageView.java:110) 
08-16 22:30:13.234: E/AndroidRuntime(894): ... 27 more 
08-16 22:30:13.694: D/dalvikvm(894): GC_CONCURRENT freed 13634K, 85% free 2497K/16280K, paused 83ms+57ms, total 370ms 
08-16 22:30:17.614: I/Process(894): Sending signal. PID: 894 SIG: 9 

이 태블릿의 레이아웃입니다. 그것의 모든 drawables. enter image description here

답변

1

무엇이 문제 일 수 있습니까?

당신은 메모리가 부족됩니다

08-16 22:30:13.234: E/AndroidRuntime(894): Caused by: java.lang.OutOfMemoryError 

이 특정 OutOfMemoryError은 아마도 레이아웃에 뭔가의 배경으로, 드로어 블 리소스를로드에 의해 발생합니다.

어떤 이유로 든 테스트중인 환경은 프로세스에 16MB의 힙 공간 만 할당 했으므로 현대 표준에서는 다소 낮습니다. 정제는 더 큰 힙 크기를 가져야하며, 특히 더 큰 배경 이미지를 처리해야합니다. 에뮬레이터에서 테스트하는 경우 에뮬레이터가 현실적인지 확인하십시오 (예 : 태블릿 크기 에뮬레이터 이미지의 경우 Android 4.x).

+0

나는 또한 실제 타블렛에서 실행하고 그것은 – mremremre1

+0

@ mremremre1 충돌 : 그리고 그것은 'OutOfMemoryError'와 충돌, 당신은 여전히 ​​메모리가 부족합니다. "메모리 부족"은 할당 된 할당량만큼 큰 메모리 블록이 없음을 의미 할 수 있습니다. MAT를 사용하여 메모리가 소비되는 위치를 확인할 수 있습니다. 특히 넓은 배경에 다양한 드로어 블 리소스를 사용할 때는주의해야합니다. – CommonsWare

+0

레이아웃의 스크린 샷을 추가했습니다. 너 너무 많이 생각하니? – mremremre1

관련 문제