设置 BitmapDrawable tileMode 使应用程序重新启动

Setting BitmapDrawable tileMode makes the app restart

虽然我的应用程序在大多数设备上运行良好,但在某些设备上(LG G3、三星 Galaxy S6 到目前为止)我遇到了一个奇怪的错误,我无法真正展开:

tileMode(通过 XML 或以编程方式)设置为 BitmapDrawable 上的任何内容 (clamp/repeat/mirror) ,这是布局的背景,使背景完全变黑-,应用程序在约 20 秒后重新启动-没有任何出错的迹象(这些回调的 LogCat、none 中没有消息我的 activity 被称为:onPause()onStop()onDestroy()).

由于这些 freezes/crashes 之间存在一些不一致,具体取决于所使用的 Bitmap,我开始摆弄 .png 图像,并发现我可以摆脱这些崩溃的(大部分),如果我减小这些图像的大小 (<200x200)。

自从

我仍在寻找通用解决方案,也许你们中的一些人可以帮助我。

虽然 this 线程与我遇到的问题不完全相同,但它意外地帮助了我。将相关布局的 layerType 设置为 software,如

  • android:layerType="software",或

  • view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

使黑色背景和应用程序重新启动消失。

事实证明,缩小背景图像并没有解决问题,只是减少了它出现的频率。

感谢 pskink 的帮助!