Android-приложение не работает на более низких версиях

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

1
задан k0sh 15 January 2019 в 09:46
поделиться

4 ответа

minSdkVersion - это то, что управляет старыми версиями здесь.

Измените значение

minSdkVersion 23

на 21, если хотите, чтобы ваше приложение поддерживало устройства вплоть до версии с леденцом на палочке. Обычно в наши дни разработчики используют minSdkVersion 21. Если вы получаете какую-либо ошибку, вы можете легко ее исправить.

Надеюсь, что это даст вам правильное руководство.

0
ответ дан Nouman Ch 15 January 2019 в 09:46
поделиться

Вы случайно не определили отдельный файл ресурсов (рисование, макет) для старых версий Android? Ваша трассировка стека говорит о том, что она не может накачать кнопку из-за отсутствия прорисовки.

0
ответ дан Martin Nowosad 15 January 2019 в 09:46
поделиться
minSdkVersion 23

установите более низкую версию, например minSdkVersion 19

, и проверьте в своем коде версию, если она ниже 23 реализует другой сценарий или отключите такую ​​функцию, как:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
           // implement your logic here
        } else {
            // implement another scenario or disable this feature 
        }
0
ответ дан Ahmed Karam 15 January 2019 в 09:46
поделиться

Activity.LoginActivity}: android.view.InflateException: строка двоичного файла XML № 57: строка двоичного файла XML № 57: ошибка надувания класса Button

Причина: android.content.res. Ресурсы $ NotFoundException: Ресурс "com.example.ananduamenon.a2z_final: drawable / button_background" (7f07005e) не является Drawable

Я думаю, вам нужно прочитать трассировка стека ошибок ближе. Как я вижу, вы использовали некоторые button_background , которые неудовлетворительно раздували свойство (drawable / color). Я рекомендую вам проверить файл button_background.xml и выяснить, что вы пишете неправильно.

0
ответ дан Yaroslav Ovdiienko 15 January 2019 в 09:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: