Почему я получаю исключение Inflate на эмуляторе, но не на моем Droid? - PullRequest
0 голосов
/ 05 июля 2011

Мой код отлично работает на моем Motorola Droid, но когда я запускаю его на эмуляторе, я получаю следующую трассировку стека:

07-05 14:29:23.035: ERROR/AndroidRuntime(237): Uncaught handler: thread main exiting due to uncaught      exception
07-05 14:29:23.075: ERROR/AndroidRuntime(237): java.lang.RuntimeException: Unable to start activity        ComponentInfo{com.thinknao.wordlands/com.thinknao.wordlands.OptionsPage}:         android.view.InflateException: Binary XML file line #16: Error inflating class java.lang.reflect.Constructor
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)

07-05 14:29:23.075: ERROR/AndroidRuntime(237): Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class java.lang.reflect.Constructor
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at android.view.LayoutInflater.createView(LayoutInflater.java:512)
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562)

07-05 14:29:23.075: ERROR/AndroidRuntime(237): Caused by: java.lang.reflect.InvocationTargetException
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at android.widget.Button.<init>(Button.java:65)

07-05 14:29:23.075: ERROR/AndroidRuntime(237): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
07-05 14:29:23.075: ERROR/AndroidRuntime(237):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)

1 Ответ

1 голос
/ 05 июля 2011

Трудно быть точным, не видя ваш код и макет, но у вас недостаточно памяти. Похоже, он связан с загрузкой растрового объекта, на который есть ссылка в строке 16 вашего файла макета.

Я бы предложил, чтобы вы использовали очень большой файл изображения; вы используете много изображений; или их комбинация.

Причина, по которой он работает на Droid, но не на эмуляторе, заключается, скорее всего, в том, что эмулятор был настроен с меньшим объемом памяти, чем телефон. Вы можете изменить настройки эмулятора в диспетчере AVD.

...