Использование новейших библиотек для приложений на старых устройствах Android - PullRequest
0 голосов
/ 29 августа 2018

Я обновил Apache Commons Compress до последней версии 1.18 в моем проекте Android с minSdkVersion 16

Все было хорошо (сборка, запуск), пока я не протестировал его на старом устройстве Xoom с Android 4.1

Он не вылетел, но работал неправильно, и было действительно трудно определить, что не так.

У меня заканчиваются некоторые записи в журнале, такие как

невозможно разрешить статическое поле (UTF_8) в Ljava / NiO / кодировка / StandardCharsets

NoClassDefFoundError; выбрасывается при инициализации Lorg / апач / Обще / компресс / архиваторы / почтовый / ZipEncodingHelper

И выясните, что проблема заключается в отсутствии поддержки java.nio.charset в до 19 Android.

ВОПРОС 1: Есть ли способ добавить поддержку Java 1.7 и новее на более старых устройствах? Так что все последние библиотеки, которые имеют тенденцию двигаться к минимально необходимой версии Java 1.7 и выше, будут работать на таких устройства без проблем. Может быть, какие-то настройки Google Play?

Угадай, ответ для Q1 - НЕТ. Итак ...

ВОПРОС 2: Должны ли мы использовать библиотеки с минимальной JDK 1.6 для Android, если мы хотим запустить наше приложение на старых устройствах (например, minSdkVersion 16). Мне удалось решить мою проблему, перенеся обратно на последний Commons Compress 1.12 с минимальным 1,6 JDK

ВОПРОС 3: Есть ли способ проверить, все ли зависимости будут работать со старыми устройствами, без необходимости тестировать приложение на таких устройствах? Например, какой-нибудь инструмент для проверки зависимостей от конкретного Android SDK.

...