2011-04-25 80 views
1

我开发我的应用程序的minSdkVersion设置为3,targetSdkVersion设置为8增加的minSdkVersion导致内存不足的错误

我的应用程序发布,并在一切运行于Android 1.5至3.0 虽然它可以运行在设备与2.0以上的东西总是参差不齐,一些它会和一些它不会

它适用于我的令人难以置信的,Android 2.2完美。运行时使用5-8mb内存。

但是我决定将其分成两个不同的应用程序,一个用于Android 1.5和1.6兼容性,另一个用于为平板电脑优化的高质量图像。

我改变的唯一线路是将minSdkVersion从3设置为5,突然它不会在任何手机或模拟器上运行? 现在在我的Incredible中,它使用7mb来显示菜单背景,并且每次载入另一个图像时都会给我一个内存不足的错误。

任何想法?由于

04-25 17:19:45.476: ERROR/dalvikvm-heap(20145): 7094850-byte external allocation too large for this process. 
04-25 17:19:45.476: ERROR/dalvikvm(20145): Out of memory: Heap Size=4871KB, Allocated=2517KB, Bitmap Size=19170KB 
04-25 17:19:45.476: ERROR/GraphicsJNI(20145): VM won't let us allocate 7094850 bytes 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145): FATAL EXCEPTION: main 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145): java.lang.RuntimeException: Unable to resume activity {com.ht/com.ht.Garage}: android.view.InflateException: Binary XML file line #10: Error inflating class com.ht.Panel 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3347) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3362) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2808) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread.access$2300(ActivityThread.java:135) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2136) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.os.Looper.loop(Looper.java:144) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread.main(ActivityThread.java:4937) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at dalvik.system.NativeStart.main(Native Method) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145): Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class com.ht.Panel 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.Activity.setContentView(Activity.java:1654) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at com.ht.Garage.onResume(Garage.java:165) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1255) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.Activity.performResume(Activity.java:3864) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3337) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  ... 12 more 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145): Caused by: java.lang.reflect.InvocationTargetException 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at com.ht.Panel.<init>(Panel.java:107) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at java.lang.reflect.Constructor.constructNative(Native Method) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  ... 23 more 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.graphics.Bitmap.nativeCreate(Native Method) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  at android.graphics.Bitmap.createBitmap(Bitmap.java:574) 
04-25 17:19:45.506: ERROR/AndroidRuntime(20145):  ... 27 more 
04-25 17:19:48.066: ERROR/ActivityManager(97): fail to set top app changed! 
+0

检查您的错误信息,并在此发布。 – Wroclai 2011-04-25 21:00:22

+0

如果您将其更改回3,它是否有效? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2011-04-25 21:02:41

+0

是的,如果我把它改回到3,它会再次运作。 – Allen 2011-04-25 21:15:21

回答

0

我发现如何解决它,将anyDensity设置为false工程。我不明白它为什么会起作用。

对于API 3,anyDensity的默认值为false,但我将它设置为true!

如果API为4(或者是5)或更高,anyDensity的默认值为true。

它与API 7默认的默认设置有什么不同,而我将它设置为真实的API 3?

这应该不会影响内存使用情况,无论如何它最终都会具有相同的值!

好吧,我的应用程序并不需要anyDensity设置为true,因为我将代码根据屏幕大小和密度动态缩放图像。

1

设置你的minSdkVersion到API第7级,API级别5和6是不再为2.0已经被完全淘汰。 Android SDK管理器不再提供这些API作为可用包,因为它们已被标记为过时。我刚刚在新系统上进行了新安装,发现API不可用。

+0

这没有奏效,我仍然收到完全相同的错误。唯一有用的是将其设置回3 – Allen 2011-04-26 11:50:16