2016-11-19 9 views
0

Я недавно опубликовал простое приложение будильника на Play Store, используя Gradle с compileSdkVersion = 23, targetSdkVersion = 23, и minSdkVersion = 15.Как обеспечить, чтобы мое опубликованное приложение для Android работало с новыми обновлениями?

Я думал, основанный на принципах Android дизайна, даже если пользователи обновление до Android 7.0 мое приложение все равно будет работать нормально, без необходимости делать какие-либо обновления, но, оказывается, это не так. Вместо этого всякий раз, когда будильник должен выйти из приложения, происходит сбой. Я попытался исследовать проблему, в том числе взглянуть на новые изменения поведения в 7.0, но ничего конкретного я не мог найти, что могло бы вызвать проблему. Единственным возможным решением, которое я видел, было изменение compileSdkVersion до последнего (это было бы 24), но я не уверен, что это должно быть.

Приложение достаточно простое, что в идеале я бы не хотел его обновлять, если клиент не запросил конкретные изменения или не возникла ошибка, которая возникла. Так что мой вопрос: Как мне обеспечить совместимость моего приложения с предыдущей версией, так что мне не нужно выпускать обновление для каждой новой версии Android, выпущенной, и это возможно? Приложение прекрасно работает на телефонах, которые используют Ice Cream Sandwich в Marshmallow, но больше не работает, когда телефон обновляется до Нуги. К счастью, база загрузок достаточно мала, что я единственный пользователь в настоящее время на Nougat, но я хотел бы исправить проблему до того, как у других пользователей возникнут проблемы.

Я рад поделиться кодами/деталями, если это необходимо, но я все же сохранил его в надежде, что я просто пропустил что-то простое.

Спасибо!

ответ

2

Единственное возможное решение я видел в том, чтобы изменить compileSdkVersion до последней

Это не оказывает никакого влияния на поведение во время выполнения, если вы также изменить свой Java код, чтобы сделать что-то другое на новых устройствах (например, начать использовать некоторые классы и методы уровня API 24).

Как обеспечить пересылает совместимость моего приложения таким образом, что я не должен выпускать обновления для каждой новой версии Android, который выпущен

«Обеспечение» невозможно для любого приложения особых явлений размер. Слишком много переменных.

Обычно, передовая совместимость «просто работает». Многие изменения поведения в новых версиях Android вступают в силу только тогда, когда вы поднимаете targetSdkVersion. Например, у меня есть several hundred sample apps в my book, и редко приложение внезапно падает на новую версию Android, где она работала раньше. Хотя каждый из этих примеров приложений довольно тривиален, они сочетают в себе честную версию Android SDK.

Те места, где я столкнулся с проблемами, - это то, что я думал, что правильный подход к решению какой-то проблемы оказался неправильным. Однако в старых версиях Android это было неправильно, так что это не сбой. Исправляя приложение для решения проблемы, правильный способ обычно устраняет проблему в старых и новых версиях Android.

Но у Android есть ошибки. Регрессии — места, где X работал и должен работать, но теперь больше не работает — приходят с каждым существенным выпуском Android. Я рассказываю о них, когда узнаю о них.И в этих случаях есть мало возможностей для обращения, но для изменения вашего кода, если регресс влияет на вас.

+0

Простите, что это заняло много времени, чтобы вернуться к этому. Оказалось, что проблема связана с тем, как обрабатываются Parcelable объекты в Android 7.0, и я исправил ее более долговечность на основе объекта БД. Ваши сообщения в других вопросах помогли мне сделать это! –

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

  • Нет связанных вопросов^_^