机器人试图用一个循环位图,不是我的code我的、位图、机器人、试图用

2023-09-13 00:06:53 作者:还没燃尽的烟

我得到这个堆栈跟踪从市场开发控制台每过一段时间;我找不到任何方式摄制的错误。它的发生,同时显示一个启动画面的ImageView的应用程序是第一次加载,但堆栈跟踪没有任何我的code。我甚至不认为我的行为甚至已经达到的onCreate ,尽管很难说没有日志。

事实上,我从来没有真正使用位图中的任何地方我code;我只做参考图像是我layout.xml。

 < ImageView的机器人:ID =@ + ID /闪屏
  机器人:layout_height =FILL_PARENT
  机器人:layout_width =FILL_PARENT
  机器人:SRC =@可绘制/闪屏
  机器人:scaleType =fitXY
/>
 

我做这个ImageView的唯一的事情是其可见性设置为 GONE 当我完成启动。

有什么我能做些什么呢?

  java.lang.RuntimeException的:画布:试图用一个循环位图android.graphics.Bitmap@4721ec18
在android.graphics.Canvas.throwIfRecycled(Canvas.java:955)
在android.graphics.Canvas.drawBitmap(Canvas.java:1044)
在android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:323)
在android.widget.ImageView.onDraw(ImageView.java:923)
在android.view.View.draw(View.java:6761)
在android.view.ViewGroup.drawChild(ViewGroup.java:1663)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.View.buildDrawingCache(View.java:6517)
在android.view.View.getDrawingCache(View.java:6305)
在android.view.ViewGroup.drawChild(ViewGroup.java:1588)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.ViewGroup.drawChild(ViewGroup.java:1661)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1409)
在android.view.View.draw(View.java:6764)
在android.widget.FrameLayout.draw(FrameLayout.java:352)
在android.view.ViewGroup.drawChild(ViewGroup.java:1663)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.ViewGroup.drawChild(ViewGroup.java:1661)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.ViewGroup.drawChild(ViewGroup.java:1661)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.View.draw(View.java:6764)
在android.widget.FrameLayout.draw(FrameLayout.java:352)
在android.view.ViewGroup.drawChild(ViewGroup.java:1663)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.ViewGroup.drawChild(ViewGroup.java:1661)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:1390)
在android.view.View.draw(View.java:6764)
在android.widget.FrameLayout.draw(FrameLayout.java:352)
在com.android.internal.policy.impl.PhoneWindow $ DecorView.draw(PhoneWindow.java:1887)
在android.view.ViewRoot.draw(ViewRoot.java:1432)
在android.view.ViewRoot.performTraversals(ViewRoot.java:1167)
在android.view.ViewRoot.handleMessage(ViewRoot.java:1764)
在android.os.Handler.dispatchMessage(Handler.java:99)
在android.os.Looper.loop(Looper.java:143)
在android.app.ActivityThread.main(ActivityThread.java:5068)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:521)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:858)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
在dalvik.system.NativeStart.main(本机方法)
 

解决方案 LeetCode 机器人的运动范围python

当您尝试回收或使用回收的位图,会出现此异常。你不应该从现有的code删除bitmap.recycle()函数,它可能会导致内存不足的错误。你可以试试下面这个code,以解决这个问题。

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

                如果(零= bitmapDrawable&安培;!&安培;!bitmapDrawable.getBitmap()isRecycled()){

                    bitmapDrawable.getBitmap()循环()。
                } 其他 {

                    记录(位图已回收);
                }

                bitmapDrawable = NULL;
 

注:profileWallpaper是你的ImageView对象的

I get this stacktrace from the Market developer console every once in a while; I can't find any way to repro the error. It's happening while displaying a splashscreen ImageView as the app is first loading, but the stacktrace doesn't have any of my code. I don't even think my activity has even reached onCreate, though it's hard to tell without a log.

Indeed, I never actually use a Bitmap anywhere in my code; my only reference to the image is in my layout.xml.

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

The only thing I do with this ImageView is set its visibility to GONE when I'm finished starting.

Is there anything I can do about this?

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)

解决方案

This exception occurs when you try to recycle or use a recycled bitmap. You should not remove bitmap.recycle() function from your existing code, it may cause Out Of Memory Error. You can try this below code to fix the issue.

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

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

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

                    log("bitmap is already recycled");
                }

                bitmapDrawable = null;

Note: profileWallpaper is your imageView object

 
精彩推荐
图片推荐