Неправильная установка ААБ

Столкнулся с проблемой установки 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-файлы:

  1. base-hdpi.apk
  2. база-ldpi.apk
  3. база-master.apk
  4. base-master_2.apk
  5. база-mdpi.apk
  6. база-tvdpi.apk
  7. base-xhdpi.apk
  8. base-xxhdpi.apk
  9. base-xxxhdpi.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, потому что там есть разные размеры этого изображения

Я пытался создавать вытягиваемые пакеты со всеми плотностями (ххх-высокий, хх-высокий, х-высокий, высокий, средний, низкий, любой, нет), но это не помогло.

Не каждое устройство требует, чтобы все файлы APK устанавливали только соответствующие файлы APK. Но я немного смущен, вы говорили о файле aab, а затем о файлах APK, но пакеты приложений Android (файлы aab) не содержат файлов APK, они имеют другую внутреннюю структуру. Вы создали файлы AaPK с помощью Bundletool?

Robert 21.05.2024 21:24

Да, я создал файл .apks с помощью Bundletool, затем преобразовал его в zip-архив с помощью toc.pb и разбил, содержащий файлы .apk. Я понимаю, что устройство устанавливает только соответствующие APK-файлы, но почему на других устройствах оно работает правильно, без каких-либо сбоев ? Я думаю, проблема в плотности: устройство не может определить плотность, поэтому не устанавливает ни одного apk-файла плотности, что приводит к вышеуказанному сбою.

android nama 22.05.2024 16:49

Почему бы вам не позволить bundletool выбрать, какие APK-файлы необходимы? Просто используйте параметр --connected-device, чтобы Bundletool создавал только те APK, которые необходимы/пригодны для использования на вашем устройстве.

Robert 22.05.2024 16:52

Спасибо, попробовал так: в эмуляторе Nexus 5x создаётся три апка (base-en, base-master, base-xxhdpi), и всё работает нормально Но теперь не знаю как воссоздать вышеупомянутый краш из крашлитика

android nama 22.05.2024 19:11
1
4
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это правильное поведение. Google Play выберет только один APK для установки на устройство. вам не о чем беспокоиться.

Извините, но это неправильно. Google установит не один APK, а набор APK, соответствующих вашему устройству.

Robert 22.05.2024 16:51
Ответ принят как подходящий

Исправлен сбой при удалении всех доступных для рисования пакетов, кроме одного по умолчанию.

Другие вопросы по теме

Как удалить файл .aab, который я загрузил в пакет Android Explorer и выпустил для внутреннего тестирования?
Ошибка перенаправления намерения SmsBroadcastReceiver
Значение идентификатора устройства изменено после обновления до версии Android до 14 в приложении Flutter
Средства за встроенные приложения Google Play всегда возвращаются через 3 дня в Xamarin.Android/.NET 8
Ошибка: невозможно экспортировать или зашифровать закрытый ключ при попытке экспортировать закрытый ключ
Как я могу разрешить запуск моего приложения на Android 10 с таргетингом на API 33?
Как запустить процесс проверки в приложении — использовать текущий контекст действия или создать новое действие?
Могу ли я повторно использовать учетную запись Google для новой учетной записи разработчика Play Store после закрытия?
Как подписать клиентское приложение Android, чтобы протестировать встроенные в него покупки?
В моем файле .jks есть настоящий ключ, но в файле .keystore его нет

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

Как удалить файл .aab, который я загрузил в пакет Android Explorer и выпустил для внутреннего тестирования?
Java.lang.NullPointerException: невозможно прочитать поле «accessFlags», поскольку возвращаемое значение «com.android.tools.r8.graph.AppView.definitionFor» равно нулю
Как наблюдать эффект staticCompositionLocalOf()?
Возникла проблема при оценке проекта «:react-native-firebase_app». Слишком поздно задавать пространство имен. Он уже прочитан для настройки этого проекта
О сборе значений из хранилища данных
Android-приложение Unity аварийно завершает работу при установке из Google Play Store
Не удается поделиться контентом в WhatsApp, когда включен AppLock
Столкновение с проблемой эмулятора в Android: «Ошибка: устройство уже активируется»
Как перейти с GoogleSignInClient на диспетчер учетных данных для аутентификации пользователей в Android?
Android-приложение Qt 6.7.1 не запускается с ошибкой: java.lang.RuntimeException: невозможно создать экземпляр приложения