Приложение падает на setContentView на определенном устройстве - PullRequest
0 голосов
/ 15 ноября 2018

Я работаю над приложением для планшета в альбомном режиме, и в настоящее время оно поддерживается только для больших планшетов. Для этого я создал следующий каталог ресурсов "layout-sw720dp-land", и у меня есть XML-макеты в этой папке. Чтобы начать свою деятельность в ландшафтном режиме, я также установил атрибут screenOrientation как ландшафт для моих действий в манифесте.

Я использую Samsung Tab A (SM-P580) для тестирования, и он работает хорошо. Но когда клиент пытается загрузить мое приложение на вкладку Samsumg S4 (SM-T830), приложение вылетает в строке setContentView () со следующей трассировкой стека:

.DashboardActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f09001c
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2956)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3041)
       at android.app.ActivityThread.-wrap11(Unknown Source)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1711)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6960)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

Насколько мне известно, оба этих планшета относятся к одному и тому же размеру, и поэтому оба планшета должны иметь возможность без каких-либо проблем извлекать файл макета из "layout-sw720dp-land". Но по какой-то причине Samsumg Tab S4 этого не позволяет. Есть ли какая-то конкретная причина для этого или я что-то здесь упускаю? Любая помощь очень ценится.

1 Ответ

0 голосов
/ 16 ноября 2018

Выяснил, в чем причина проблемы.В некоторых устройствах Samsung в разделе Настройки-> Доступность-> Видение-> Масштаб экрана и шрифт пользователь сможет выбрать масштаб экрана.

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

В результате разрешение устройства снижается, и теперь, когда мое приложение загружалось, оно начало искать макеты из sw-600dp папка, в которой у меня не было макета xml, поскольку я планировал запускать приложение только на 10-дюймовых планшетах.

Таким образом, решение заключается в добавлении файлов макета в sw-600dp, чтобы избежать сбоя приложения.Или попросить пользователя изменить настройки масштабирования экрана на min, чтобы устройство считывало макет из корзины sw-720dp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...