Мой код работает на небольших устройствах, но не работает на устройствах с большим экраном выше 5 дюймов.

Мой код работает на небольших устройствах, но не работает на устройствах с большим экраном выше 5 дюймов.

Структура папок макета следующая:

layout-land/homeactivity.xml
layout-small-land/homeactivity.xml
layout-large-land/homeactivity.xml
layout-xlarge-land/homeactivity.xml

И исключение:

12-17 12:26:10.811: E/AndroidRuntime(335): FATAL EXCEPTION: main 
12-17 12:26:10.811: E/AndroidRuntime(335): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pelkin.peekzoo/com.pelkin.peekzoo.Animals}: android.view.InflateException: Binary XML file line #22: Error inflating class 
12-17 12:26:10.811: E/AndroidRuntime(335): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
12-17 12:26:10.811: E/AndroidRuntime(335): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

person AndroidDevM10    schedule 17.12.2013    source источник
comment
В исключении должно быть больше информации, например где встречается NullPointerException.   -  person Jon Skeet    schedule 17.12.2013
comment
Да, вам нужно предоставить больше, чем это, чтобы кто-нибудь мог вам помочь.   -  person Khay    schedule 17.12.2013
comment
вам нужно сохранить одну папку layout в качестве основы для любого необработанного размера экрана   -  person Kshitij    schedule 17.12.2013
comment
он находится в классе HomeActivity, который является действием.   -  person AndroidDevM10    schedule 17.12.2013
comment
12-17 12:26:10.811: E/AndroidRuntime(335): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 12-17 12:26:10.811: E/AndroidRuntime(335): java.lang.RuntimeException: невозможно запустить активность ComponentInfo{com. pelkin.peekzoo/com.pelkin.peekzoo.Animals}: android.view.InflateException: строка двоичного XML-файла № 22: ошибка наполнения класса ‹unknown› 12–17 12:26:10.811: E/AndroidRuntime(335): на android .app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 12-17 12:26:10.811: E/AndroidRuntime(335): в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)   -  person AndroidDevM10    schedule 17.12.2013


Ответы (3)


Проверьте все идентификаторы каждого представления во всех xml. Он должен быть одинаковым во всех xml-файлах.

person UrMi    schedule 17.12.2013

Были ли у вас все изображения, которые вы используете, в разных размерах? Если вам не хватает значков или изображений больших размеров: drawable-xxhdpi и drawable-xhdpi, это может дать вам нулевой указатель. Поскольку он пытается загрузить изображение, которого не существует в этом размере.

person Black Magic    schedule 17.12.2013
comment
Я не думаю, что это создаст исключение нулевого указателя, поскольку, если изображения находятся в других доступных папках, он возьмет из него источник - person Khay; 17.12.2013
comment
@Black Magic Структура моего изображения выглядит следующим образом: drawable-land drawable-land-hdpi drawable-land-xhdpi drawable-land-mdpi drawable-land-ldpi Я помещаю все изображения только в ldpi и hdpi - person AndroidDevM10; 17.12.2013

идентификатор может отличаться в layout-large-land/homeactivity.xml или layout-xlarge-land/homeactivity.xml макета. дважды проверьте свой идентификатор.

person null pointer    schedule 17.12.2013
comment
Спасибо, чувак, все работает, я не скопировал код своих кнопок во всех XML :) - person AndroidDevM10; 17.12.2013