Столкнулся с проблемой установки AAB (приложения, опубликованного в плеймаркете) на Nexus 5X.
Caused by android.content.res.Resources$NotFoundException: Resource ID #0x7f0800f9
at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:224)
at android.content.res.Resources.getValueForDensity(Resources.java:1334)
at android.graphics.drawable.BitmapDrawable.updateStateFromTypedArray(BitmapDrawable.java:798)
at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:754)
AAB имеет следующие APK-файлы:
Решил скачать эти апки на эмулятор Nexus 5X Когда я загружаю пакет apk плотности и мастера (например, base-master.apk с base-hdpi.apk), все работает нормально, но когда я загружаю только apk master или master_2, я получаю вышеуказанную ошибку
Обновление: я нашел причину сбоя: у меня было одно png-изображение в трех доступных для рисования пакетах (drawable, drawable-xxhdpi, drawable-xxxhdpi), когда я удалил drawable-xxhdpi, drawable-xxxhdpi и сохранил только рисованный пакет, указанный выше сбой. было исправлено, но я хочу сохранить пакеты drawable-xxhdpi, drawable-xxxhdpi, потому что там есть разные размеры этого изображения
Я пытался создавать вытягиваемые пакеты со всеми плотностями (ххх-высокий, хх-высокий, х-высокий, высокий, средний, низкий, любой, нет), но это не помогло.
Да, я создал файл .apks с помощью Bundletool, затем преобразовал его в zip-архив с помощью toc.pb и разбил, содержащий файлы .apk. Я понимаю, что устройство устанавливает только соответствующие APK-файлы, но почему на других устройствах оно работает правильно, без каких-либо сбоев ? Я думаю, проблема в плотности: устройство не может определить плотность, поэтому не устанавливает ни одного apk-файла плотности, что приводит к вышеуказанному сбою.
Почему бы вам не позволить bundletool выбрать, какие APK-файлы необходимы? Просто используйте параметр --connected-device, чтобы Bundletool создавал только те APK, которые необходимы/пригодны для использования на вашем устройстве.
Спасибо, попробовал так: в эмуляторе Nexus 5x создаётся три апка (base-en, base-master, base-xxhdpi), и всё работает нормально Но теперь не знаю как воссоздать вышеупомянутый краш из крашлитика
Это правильное поведение. Google Play выберет только один APK для установки на устройство. вам не о чем беспокоиться.
Извините, но это неправильно. Google установит не один APK, а набор APK, соответствующих вашему устройству.
Исправлен сбой при удалении всех доступных для рисования пакетов, кроме одного по умолчанию.
Не каждое устройство требует, чтобы все файлы APK устанавливали только соответствующие файлы APK. Но я немного смущен, вы говорили о файле aab, а затем о файлах APK, но пакеты приложений Android (файлы aab) не содержат файлов APK, они имеют другую внутреннюю структуру. Вы создали файлы AaPK с помощью Bundletool?