2016-08-26 4 views
-1

Я перезаписываю приложение, которое я прекратил работать над ним несколько лет назад.макет, макет-макет, макет-нормальный и т. Д.

Я бы переехал из Eclipse в Android Studio, но прежде чем попытался проверить, работает ли он с Nexus5, я действительно имел. Приложение было протестировано на Nexus S.

После компиляции и запуска я получаю много исключений NullPointerException, и я видел, что это зависит от разных findViewById, которые не были разрешены.

Я использовал только папку res/layout.

Я попытался скопировать эту папку в новую папку с именем res/layout-large, и все работает нормально.

Мои вопросы:

  • Нет ли способ использовать только разреш/макет?
  • Мне нужно переименовать его в res/layout-normal, потому что res/layout больше не является папкой макета по умолчанию или нет?
  • Нужно ли вводить и другие папки (res/layout-normal и т. Д.)?

Благодаря Лука

+0

Пожалуйста, поделитесь некоторыми фрагментами кода. Это не похоже на проблему с структурой макета. – Gaurav

ответ

2

-large-xlarge и так далее устарели в течение достаточно долгого времени.

документация не всегда в курсе, но рекомендуется использовать -sw<N>dp вместо этого, например layout-sw600dp

Вы не имеют использовать что-нибудь другое, чем базовый селектор (макета, значения, рисуем, и т. д.) для любого ресурса, поэтому ваша проблема заключается в том, как вы объявляете и используете эти ресурсы.

+0

Но в моем проекте было только res/layout, а findElementById возвращает null. После создания res/layout-large (с теми же файлами внутри) он работает. Что может быть проблемой с моим res/layout? – Luca122131

+0

Не видя своего проекта, я не знаю. Ошибка плагина сборки кажется маловероятной, поскольку эта базовая часть любого приложения ... (однако я не знаю, какой плагин сборки вы все еще используете на eclipse -_-). Таким образом, в структуре кода или макета должно быть что-то подозрительное. Опять нет выбора по умолчанию, и это не изменится. – Teovald

+0

Спасибо, я действительно не знаю, что я изменил, но теперь, похоже, работает. Я также перенес свой проект в Android Studio, получил и решил некоторые проблемы, и теперь я могу начать обновлять свое приложение! – Luca122131

Смежные вопросы