App crashes on Android (release variant) with `Canvas: trying to draw too large` in logcat
See original GitHub issue🐛 Bug Report
App crashes, with no error, in release variant on Android. The logcat shows this error:
02-15 15:47:13.074 12078 12078 E AndroidRuntime: java.lang.RuntimeException: Canvas: trying to draw too large(146506816bytes) bitmap.
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:98)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:545)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.RoundedDrawable.draw(RoundedDrawable.java:376)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.RoundedBitmapDrawable.draw(RoundedBitmapDrawable.java:46)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.ForwardingDrawable.draw(ForwardingDrawable.java:145)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.ScaleTypeDrawable.draw(ScaleTypeDrawable.java:123)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.FadeDrawable.drawDrawableWithAlpha(FadeDrawable.java:302)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.FadeDrawable.draw(FadeDrawable.java:289)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.drawable.ForwardingDrawable.draw(ForwardingDrawable.java:145)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.drawee.generic.RootDrawable.draw(RootDrawable.java:81)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.widget.ImageView.onDraw(ImageView.java:1342)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20207)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19073)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19073)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.widget.ScrollView.draw(ScrollView.java:1739)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.scroll.ReactScrollView.draw(ReactScrollView.java:402)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19073)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.widget.ScrollView.draw(ScrollView.java:1739)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.scroll.ReactScrollView.draw(ReactScrollView.java:402)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:672)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19073)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:19935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:4333)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4112)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.draw(View.java:20210)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.widget.ScrollView.draw(ScrollView.java:1739)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.facebook.react.views.scroll.ReactScrollView.draw(ReactScrollView.java:402)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19082)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:19042)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:801)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewRootImpl.draw(ViewRootImpl.java:3311)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3115)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2484)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1460)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7183)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:761)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:696)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:873)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.os.Looper.loop(Looper.java:193)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6718)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
02-15 15:47:13.074 12078 12078 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
To Reproduce
I have no idea where the error lies exactly. It is probably related to the rendering of an Image
component.
Expected Behavior
The app should not crash 🙂
Code Example
I cannot be sure because the error produced no stack trace for the JS part of the application, but I suppose the poblem might be start from this rendering:
<ListItem {...props} avatar style={itemStyle}>
<Left>
{otherUsers.length === 1
? <ContactThumbnail contact={otherUsers[0]} />
: (
<Thumbnail
source={avatarPlaceholder}
style={{
width: dimensions.avatar.contactThumbnail.display,
height: dimensions.avatar.contactThumbnail.display,
}}
/>
)
}
{count
? (
<Badge info style={styles.badge}>
<Text style={styles.text}>{count}</Text>
</Badge>
)
: null
}
{conversation.selected
? (
<Badge success style={styles.selectedBadge}>
<Text style={styles.tick}>✔</Text>
</Badge>
)
: null
}
</Left>
<Body>
<Text>
{title}
</Text>
{lastMessage
? <LastMessagePreview {...lastMessage} />
: <Text>{' '}</Text>
}
</Body>
<Right>
{lastMessage
? <DateFormat date={lastMessage.createdDate} />
: <DateFormat date={conversation.createdDate} />
}
</Right>
</ListItem>
Environment
React Native Environment Info:
System:
OS: macOS 10.14.3
CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
Memory: 34.70 MB / 16.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 11.9.0 - /usr/local/bin/node
npm: 6.7.0 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 23, 27, 28
Build Tools: 27.0.3, 28.0.0, 28.0.3
System Images: android-28 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.1 AI-173.4907809
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: ^16.7.0 => 16.7.0
react-native: ^0.58.3 => 0.58.3
npmGlobalPackages:
react-native-cli: 2.0.1
react-native-git-upgrade: 0.2.7
Issue Analytics
- State:
- Created 5 years ago
- Reactions:6
- Comments:14 (1 by maintainers)
Top Results From Across the Web
"Canvas: trying to draw too large bitmap" when Android N ...
It's caused by the high DPI, many SAMSUNG devices have a high DPI setting. I placed hi-res bitmap images in "drawable", it only...
Read more >App Crash on Android. "Canvas: trying to draw too large ...
The error told itself : your image is too large, either the size, dpi, or resolution and your android is struggling to "draw"...
Read more >Canvas: trying to draw too large(122680608bytes) bitmap.
You have a large image, probably in the res/drawable/ folder. What resolution is the image and what is the device it's crashing on?...
Read more >Crashes - Android Developers
An Android app crashes whenever there's an unexpected exit caused by an unhandled exception or signal. An app that is written using Java...
Read more >Canvas: Trying To Draw Too Large(151099200Bytes) Bitmap
The error told itself : your image is too large either the size dpi or resolution and your android is struggling to draw...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
same issue here using expo
We got this error again today. Can you please reopen this issue?