【问题标题】:java.lang.IllegalStateException?java.lang.IllegalStateException?
【发布时间】:2018-01-31 09:59:01
【问题描述】:

我在我的一个应用程序中的 google play 控制台上收到每日崩溃报告。

崩溃日志是:

java.lang.IllegalStateException: 
  at android.graphics.Bitmap.checkRecycled (Bitmap.java:394)
  at android.graphics.Bitmap.writeToParcel (Bitmap.java:1599)
  at miui.security.ISecurityManager$Stub$Proxy.saveIcon (ISecurityManager.java:1505)
  at miui.security.SecurityManager.saveIcon (SecurityManager.java:275)
  at com.miui.internal.os.Native.invoke (Native.java)
  at miui.reflect.Method.invoke (Method.java:120)
  at miui.content.res.ThemeRuntimeManager.saveIconInner (ThemeRuntimeManager.java:185)
  at miui.content.res.ThemeRuntimeManager.-wrap1 (SourceFile)
  at miui.content.res.ThemeRuntimeManager$ThemeServiceThread.run (ThemeRuntimeManager.java:159)

我没有在我的应用程序中使用任何recycle bitmap。我没有在intent 中包裹任何bitmap。因此,无法找到崩溃的位置。如果有人知道如何获取错误位置/行,请提供帮助。

我正在使用 Picasso 加载已安装的应用程序图标,如下所示:

  Picasso
                        .with(activity.getApplicationContext())
                        .load(IconRequestHandler.getUri(appsListItems.get(position).getPackageName()))
                        .fit()
                        .error(R.drawable.ic_default)
                        .placeholder(R.drawable.ic_default)
                        .into(holder.icon);

【问题讨论】:

  • 是完整的堆栈跟踪吗?
  • miui rom,你用的是 Glide、Picasso 还是一些图片加载库?
  • @rupinderjeet 我正在使用毕加索库来加载移动安装的应用程序图标。
  • @Hemant Parmar 是的,这是完整的堆栈跟踪
  • 请添加您使用毕加索加载图像的代码。你在为毕加索使用定制的东西吗?

标签: android bitmap illegalstateexception


【解决方案1】:

经过排查,发现问题是调用了BitmapDrawable.getBitmap方法。对我来说,将 Drawable 转换为 Bitmap 的最简单的解决方案是:

Drawable d = packageManager.getApplicationIcon("com.example.appPackage");
Bitmap b = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(b);
d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
d.draw(canvas);

在小米设备上运行良好。

【讨论】:

    猜你喜欢
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2017-09-25
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多