首页 文章

Android Studio:应用程序在启动时不断崩溃

提问于
浏览
0

发生在我身上的事很奇怪 . 我最后一次通过Android Studio运行我的应用程序时运行正常 . 然后是第二次,即使我没有改变任何东西,它也会在打开时崩溃 . 这是logcat:

05-14 20:13:45.718 25075-25082 /? E / art:向调试器发送回复失败:管道损坏05-14 20:13:46.644 25075-25075 /? E / AndroidRuntime:FATAL EXCEPTION:main进程:com.breunig.nathan.progressbarderby,PID:25075 java.lang.RuntimeException:Canvas:尝试绘制太大(118692000bytes)的位图 . 在Android.graphics.Cravas.drawBitmap(Canvas.java:1415)上的android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)在Android上的android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:528) . 在android.view.View.draw.draw.Go.Arp(View.java:16167)上的android.view.View.draw(View.java:16185)上的widget.ImageView.onDraw(ImageView.java:1316) (View.java:16951)在android.view.ViewGroup.Dasout.rar(Android.j.:::::::在android.view.View.View.DovoutDrawoutDraw上的android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1230) ViewGroup.java:3513)在android.view.View.draw(View.java:16188)的android.view.View.D.前面的android.view.View.View.View.View.View.View.David(View.java:16168) )在Android.view.View.View上的android.view.View.DisplayListIfDat(View.java:16162)的android.view.ViewGroup.DispatchDraw(ViewGroup.java:3513)上的android.view.ViewGroup.drawChild(ViewGroup.java:3727) .View.draw(View.java:16951)at和android.view.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View.View上的android.view.View. .draw(View.java:16951)在android.view.ViewGroup.DasplayListIfDirty的android.view.ViewGroup.DispatchDraw(ViewGroup.java:3513)的android.view.ViewGroup.drawChild(ViewGroup.java:3727)上查看 . java:16162)at android.view.View.draw(View.java:16951)at android.view.ViewGroup.drawChild(ViewGroup.java:3727)at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)at Android.view.View.View中的android.view.View.View.View(View.java:3727)安卓android.view.View.Starts上的android.view.View.updateDisplayListIfDirty(View.java:16162)位于android.view.View的com.android.internal.policy.DecorView.draw(DecorView.java:754)的android.view.View.draw(View.java:17188)的.dispatchDraw(ViewGroup.java:3513) . android.view.ThreadedRenderer.updateViewTreeD中的updateDisplayListIfDirty(View.java:16167) isplayList(ThreadedRenderer.java:648)位于android.view.ThreadedRenderer上的android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:654),在android.view.ViewRootImpl.draw(ViewRootImpl.java)处于android.view.ThreadedRenderer.draw(ThreadedRenderer.java:762) :2800)在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215)android.view.ViewRootImpl.doTraversals(ViewRootImpl.java:1215)android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2608) .view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6338)在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:874)的android.view.Choreographer.doCallbacks(Choreographer.java:686) . 在android.view.Handler的android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:860)的android.O. android.app.ActivityThread.main上的android.os.Looper.loop(Looper.java:154)中的.dispatchMessage(Handler.java:95) Thread.java:6121)位于com.android.internal.os的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:889)的java.lang.reflect.Method.invoke(Native Method) . ZygoteInit.main(ZygoteInit.java:779)

没有意义 . 我试过清理和重建项目,没有运气 . 任何帮助,将不胜感激 . 谢谢 .

2 回答

  • 0

    Java.lang.RuntimeException:Canvas:尝试绘制太大(118692000bytes)的位图

    您正试图在 Canvas 上绘制一个非常大的 Bitmaparound 118MB ) . 要解决此错误,请尝试减小 bitmap 的大小并在 canvas 上绘制 .

    You can also use Bitmap decoding method:

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(getResources(), R.id.myimage, options);
    int imageHeight = options.outHeight;
    int imageWidth = options.outWidth;
    String imageType = options.outMimeType;
    

    请参阅有关Loading Large Bitmaps Efficiently的文档

    希望这会有所帮助〜

  • 2

    看起来你正在使用一个非常大的位图,画布无法处理它 . 也许您可以更改要显示的图像资源 .

相关问题