某些设备上的 Resources$NotFoundException (setIcon)

Resources$NotFoundException on some devices (setIcon)

在 Google Play 商店中,我可以在某些设备(Android 8.0 和 8.1)上看到以下崩溃日志输出。但是,我无法找出原因,因为日志输出和所有可绘制文件夹(hdpi、mdpi、xhdpi、xxhdpi、xxxhdpi)中缺少可能丢失的资源 ID,我有必要的 PNG 图像。

你知道原因是什么吗?

Caused by: android.content.res.Resources$NotFoundException: 
  at android.content.res.ResourcesImpl.getValue (ResourcesImpl.java:215)
  at android.content.res.Resources.getValue (Resources.java:1316)
  at androidx.appcompat.widget.ResourceManagerInternal.createDrawableIfNeeded (ResourceManagerInternal.java:176)
  at androidx.appcompat.widget.ResourceManagerInternal.getDrawable (ResourceManagerInternal.java:141)
  at androidx.appcompat.widget.ResourceManagerInternal.getDrawable (ResourceManagerInternal.java:132)
  at androidx.appcompat.content.res.AppCompatResources.getDrawable (AppCompatResources.java:104)
  at com.google.android.material.tabs.TabLayout$Tab.setIcon (TabLayout.java:1968)
  at com.xyz.myapp.MainActivity.setupTabIcons (MainActivity.java:184)
  at com.xyz.myapp.MainActivity.initialize (MainActivity.java:176)
  at com.xyz.myapp.MainActivity.onRequestPermissionsResult (MainActivity.java:453)
  at android.app.Activity.dispatchRequestPermissionsResult (Activity.java:7429)
  at android.app.Activity.dispatchActivityResult (Activity.java:7280)
  at android.app.ActivityThread.deliverResults (ActivityThread.java:4264)

切换到应用程序包后,我开始收到其中一些报告。我一直认为它们来自从 third-party APK 镜像站点下载我的应用程序的用户。因此,如果他们下载的 APK 与他们设备的密度桶不匹配,应用就会崩溃,因为相关资产不存在。