gpt4 book ai didi

Android 试图使用回收的位图,而不是在我的代码中

转载 作者:IT王子 更新时间:2023-10-28 23:31:52 28 4
gpt4 key购买 nike

我每隔一段时间就会从 Market 开发者控制台获取此堆栈跟踪信息;我找不到任何方法来重现错误。在首次加载应用程序时显示启动画面 ImageView 时发生这种情况,但堆栈跟踪没有我的任何代码。我什至认为我的 Activity 还没有达到 onCreate,尽管没有日志很难判断。

确实,我从未在代码中的任何地方实际使用过位图;我对图像的唯一引用是在我的 layout.xml 中。

<ImageView android:id="@+id/splashScreen"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:src="@drawable/splashscreen"
android:scaleType="fitXY"
/>

我对这个 ImageView 所做的唯一事情就是在我完成启动时将其可见性设置为 GONE

对此我有什么办法吗?

java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@4721ec18
at android.graphics.Canvas.throwIfRecycled(Canvas.java:955)
at android.graphics.Canvas.drawBitmap(Canvas.java:1044)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:323)
at android.widget.ImageView.onDraw(ImageView.java:923)
at android.view.View.draw(View.java:6761)
at android.view.ViewGroup.drawChild(ViewGroup.java:1663)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.View.buildDrawingCache(View.java:6517)
at android.view.View.getDrawingCache(View.java:6305)
at android.view.ViewGroup.drawChild(ViewGroup.java:1588)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1409)
at android.view.View.draw(View.java:6764)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1663)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.View.draw(View.java:6764)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1663)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.ViewGroup.drawChild(ViewGroup.java:1661)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
at android.view.View.draw(View.java:6764)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1887)
at android.view.ViewRoot.draw(ViewRoot.java:1432)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1167)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1764)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

最佳答案

当您尝试回收或使用回收的位图时会发生此异常。您不应该从现有代码中删除 bitmap.recycle() 函数,这可能会导致内存不足错误。您可以尝试以下代码来解决此问题。

BitmapDrawable bitmapDrawable = ((BitmapDrawable) profileWallpaper.getDrawable());

if (null != bitmapDrawable && !bitmapDrawable.getBitmap().isRecycled()) {

bitmapDrawable.getBitmap().recycle();
} else {

log("bitmap is already recycled");
}

bitmapDrawable = null;

注意:profileWallpaper 是你的 imageView 对象

关于Android 试图使用回收的位图,而不是在我的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791742/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com