Что я должен установить для compileSdkVersion, minSdkVersion и targetSdkVersion для поддержки от Marshmallow до Pie? - PullRequest
3 голосов
/ 08 марта 2019

Мое приложение для Android может быть установлено в Oreo & Pie без каких-либо проблем. Если я попытался установить сборку релиза в версии телефона Marshmallow & Nougat, то выдается сообщение об ошибке «При синтаксическом анализе пакета произошла ошибка». Найдите мою версию SDK в gradle

compileSdkVersion 28
  minSdkVersion 21
  targetSdkVersion 28
  implementation com.android.support:appcompat-v7:28.0.0
  implementation com.android.support:support-v4:28.0.0
  implementation com.android.support:design:28.0.0

Предположим, если я изменю версию sdk для compile & target на 26, будет ли она работать на устройствах Marshmallow & Nougat? Если я переключаюсь на версию SDK на 26 и поддерживаю библиотеки на 26.0.0, я получаю ошибку сборки, например сбой привязки ресурсов Android.

Пожалуйста, помогите мне решить эту проблему и предоставьте решение для моего приложения для Android, которое должно поддерживать от зефира до пирога [последняя прямая совместимость].

Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 08 марта 2019

Согласно вашему сборочному сборщику, я думаю, что ваша buildToolsVersion неверна.

buildToolsVersion '28.0.3'

Измените свой buildToolsVersion, как указано выше.

1 голос
/ 08 марта 2019

Нет изменений в вашем файле build.gradle.Пожалуйста, продолжайте с той же конфигурацией "compileSdkVersion 28 minSdkVersion 21 targetSdkVersion 28".Выглядит нормально

Я думаю, есть проблема в выпуске apk.Пожалуйста, перепроверьте следующую распространенную ошибку:

  • Вы устанавливаете релиз apk прямо с SD-карты. (Вы не должны устанавливать релиз apk напрямую, вам нужно публиковаться в игровой консоли, тогда только вы можете использовать свой apk иначеВы должны использовать только debug apk)
  • Номер версии (не используется ли он уже)
  • Вы переименовали свой файл apk релиза?- Если вы сделали, значит, пожалуйста, переименуйте обратно к старому имени.
  • Исправьте уровень API в файле манифеста.(Перекрестная проверка с файлом build.gradle)
0 голосов
/ 08 марта 2019

Привет всем Спасибо за предложение и комментарии. Наконец-то я обнаружил, в чем проблема в версии Nougat 7.0.

Проблема не с gradle. Проблема из-за моего имени пакета в папке проекта, то есть «Деятельности», «Сервисы», «Утилиты», «Модели». Все имя пакета начиналось с заглавной буквы, поэтому выдается сообщение об ошибке, говорящее, что в файле манифеста android android: имя не определено [не удается распознать при попытке установить на устройстве Nougat].

Найдена проблема при установке релиза apk в симуляторе API уровня 24 и 25 и обнаружена ошибка в LogCat.

После того, как я изменил все имя пакета в своем проекте маленькой буквой, то есть действиями, службами, утилитами, теперь я могу установить apk релиза на устройстве с версией Nougat.

Теперь невозможно установить его в устройстве Marshmallow 6.0. На этот раз я получаю Приложение не установлено Ошибка

Пожалуйста, дайте мне знать, чего не хватает для устройств версии 6.0.

Заранее спасибо

0 голосов
/ 08 марта 2019

compileSdkVersion и targetSdkVersion обычно одинаковы, и, определив это, вы сообщаете приложению, для каких устройств Android вы специально делаете приложение.Таким образом, каким бы ни был ваш targetSdkVersion, приложение будет работать максимально плавно.

minSdkVersion - это минимальный sdk, на который вы хотите нацелиться.Поэтому, если вы хотите, чтобы минимальное поддерживаемое устройство было Marshmallow, тогда приложение не будет доступно для устройства, имеющего версию API ниже Marshmallow, фактически приложение даже не появится в playstore.

...