os-issue-tracker icon indicating copy to clipboard operation
os-issue-tracker copied to clipboard

Contacts crashes when choosing 50MP image for contact picture

Open schuelermine opened this issue 1 year ago • 1 comments

Observed on Pixel 9 Pro running GrapheneOS 2024091900 and Contacts 1.7.34.

Contact picture had not been set after crash.

To reproduce:

  1. Take or otherwise obtain large image. (observed with 50MP from Pixel Camera app)
  2. Edit any contact in Contacts and open the photo chooser dialog.
  3. Select image taken in step 1.

Crash log:

type: crash
osVersion: google/caiman/caiman:14/AD1A.240905.004/2024091900:user/release-keys
package: com.android.contacts:10734
process: com.android.contacts
processUptime: 37144 + 256 ms

java.lang.RuntimeException: Canvas: trying to draw too large(200540160bytes) 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:1446)
	at android.view.View.draw(View.java:24626)
	at android.view.View.updateDisplayListIfDirty(View.java:23492)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.draw(View.java:24629)
	at android.widget.ScrollView.draw(ScrollView.java:2019)
	at android.view.View.updateDisplayListIfDirty(View.java:23492)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.draw(View.java:24629)
	at android.view.View.updateDisplayListIfDirty(View.java:23492)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.updateDisplayListIfDirty(View.java:23483)
	at android.view.View.draw(View.java:24356)
	at android.view.ViewGroup.drawChild(ViewGroup.java:4576)
	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4337)
	at android.view.View.draw(View.java:24629)
	at com.android.internal.policy.DecorView.draw(DecorView.java:827)
	at android.view.View.updateDisplayListIfDirty(View.java:23492)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:5336)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4998)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4116)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2741)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9960)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1406)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1415)
	at android.view.Choreographer.doCallbacks(Choreographer.java:1015)
	at android.view.Choreographer.doFrame(Choreographer.java:945)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1389)
	at android.os.Handler.handleCallback(Handler.java:959)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:317)
	at android.app.ActivityThread.main(ActivityThread.java:8623)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
	at com.android.internal.os.ExecInit.main(ExecInit.java:50)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)

schuelermine avatar Oct 02 '24 00:10 schuelermine

We'll have to fix this ourselves.

thestinger avatar Oct 02 '24 01:10 thestinger