2012-02-06 163 views
0

我一直在开发一款应该支持多种屏幕尺寸的应用程序。当我在中等尺寸屏幕(nexus 3.7)上运行该应用程序时,它工作正常,但如果我使用小屏幕或大屏幕运行相同的代码,则应用程序会崩溃。任何人都可以告诉我如何解决这个问题?应用程序崩溃时,在Android的小屏幕和大屏幕上运行

02-06 21:05:38.384: E/AndroidRuntime(331): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.deepak.alice/com.android.deepak.alice.SwipeOfLetters}: android.view.InflateException: Binary XML file line #17: Error inflating class <unknown> 
02-06 21:05:38.384: E/AndroidRuntime(331): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class <unknown> 
02-06 21:05:38.384: E/AndroidRuntime(331): Caused by: java.lang.reflect.InvocationTargetException 
02-06 21:05:38.384: E/AndroidRuntime(331): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

回答

0

的错误似乎是明确的:

java.lang.OutOfMemoryError 

这意味着你比你应该分配更多的内存。 根据屏幕问题,我会说你正在分配一个位图或其他大小取决于屏幕大小的其他东西。然后,您应该考虑使用最大尺寸,而不管实际的屏幕尺寸是多少,并将这些值缩小。

+0

嗨迈克尔...有什么办法通过代码消除这个内存问题? – 2012-02-06 16:36:42

+1

是的。通过使用本地分配(C++),您没有任何限制。在Java中这是不可能的。尽量避免所有内存泄漏,并尽可能多地分配。 – poitroae 2012-02-06 16:43:33