Dar9586 / NClientV2

An unofficial NHentai android client
Apache License 2.0
1.88k stars 94 forks source link

Crashing when opening Tankoubon #593

Open hudasf opened 1 year ago

hudasf commented 1 year ago

Your issue may already be reported! Please search on the issue tracker before creating one.

Expected Behavior

when opening tankoboun, especially large images

Current Behavior

force crashes

Possible Solution

Steps to Reproduce (for bugs)

  1. Opening random tankoubon
  2. Crash at early pages

Context

Your Environment

Here is crash log java.lang.RuntimeException: Canvas: trying to draw too large(221184000bytes) bitmap. at android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:266) at android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:94) at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:549) at android.widget.ImageView.onDraw(ImageView.java:1480) at android.view.View.draw(View.java:23150) at android.view.View.updateDisplayListIfDirty(View.java:21977) at android.view.View.draw(View.java:22861) at android.view.ViewGroup.drawChild(ViewGroup.java:4602) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4360) at androidx.constraintlayout.widget.ConstraintLayout.dispatchDraw(ConstraintLayout.java:5) at android.view.View.updateDisplayListIfDirty(View.java:21968) at android.view.View.draw(View.java:22861) at android.view.ViewGroup.drawChild(ViewGroup.java:4602) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4360) at android.view.View.updateDisplayListIfDirty(View.java:21968) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4586) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4559) at android.view.View.updateDisplayListIfDirty(View.java:21917) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:534) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:542) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:625) at android.view.ViewRootImpl.draw(ViewRootImpl.java:4841) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4547) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3640) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2369) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9345) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1121) at android.view.Choreographer.doCallbacks(Choreographer.java:918) at android.view.Choreographer.doFrame(Choreographer.java:832) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1106) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:210) at android.os.Looper.loop(Looper.java:299) at android.app.ActivityThread.main(ActivityThread.java:8268) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1073)

Dar9586 commented 1 year ago

Can you provide a gallery which creates this problem, the android version and the RAM amount of your device?

hudasf commented 1 year ago

Can you provide a gallery which creates this problem, the android version and the RAM amount of your device?

It's Dream Realty Tankoubon 119055 Around page 3

My device is Redmi k40 Gaming Ram 8 Storage 256 Miui 13 stable

Thanks for your good work!