element-hq / element-hq/element-android

Android Crash on Opening a Room

Open
#9,052 0 comments 0 reactions 0 assignees View on GitHub
T-Defect
Dominant language
Kotlin
Stars
3.7k
Forks
917
Avg merge
8d 20h
Merged PRs (30d)
1

Description

I have a self-hosted synapse server. On a _new_ Android 13 Device (OnePlus 13), attempting to open any room results in the following error taken from ADB.

### Steps to reproduce

Set Android Font Weight to something other than default.

Settings > Display & Brightness > Font > Font Weight

```
E FATAL EXCEPTION: main
Process: im.vector.app, PID: 19093
java.lang.IllegalArgumentException: PrecomputedText's Parameters don't match the parameters of this TextView.
Consider using setTextMetricsParams(precomputedText.getParams()) to override the settings of this TextView:
PrecomputedText: {textSize=40.6875, textScaleX=1.0, textSkewX=0.0, letterSpacing=0.0, textLocale=[en_US], typeface=android.graphics.Typeface@ec6bfd01, variationSettings='wght' 450, elegantTextHeight=false, textDir=android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal@c3d521a, breakStrategy=1, hyphenationFrequency=0, lineBreakStyle=0, lineBreakWordStyle=0}
TextView: {textSize=40.6875, textScaleX=1.0, textSkewX=0.0, letterSpacing=0.0, textLocale=[en_US], typeface=android.graphics.Typeface@ec6bfd01, variationSettings='wght' 450, elegantTextHeight=false, textDir=android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal@c3d521a, breakStrategy=1, hyphenationFrequency=0, lineBreakStyle=0, lineBreakWordStyle=0}
at android.widget.TextView.setText(TextView.java:7425)
at android.widget.TextView.setText(TextView.java:7341)
at io.element.android.wysiwyg.EditorStyledTextView.setText(SourceFile:1)
at android.widget.TextView.setText(TextView.java:7279)
at androidx.core.widget.TextViewCompat.setPrecomputedText(SourceFile:15)
at androidx.appcompat.widget.AppCompatTextView.consumeTextFutureAndSetBlocking(SourceFile:14)
at androidx.appcompat.widget.AppCompatTextView.getText(SourceFile:1)
at im.vector.app.features.html.EventHtmlRenderer$removeLeadingNewlineForInlineElement$1.afterSetText(SourceFile:11)
at im.vector.app.features.home.room.detail.timeline.item.MessageTextItem.bind(SourceFile:44)
at im.vector.app.features.home.room.detail.timeline.item.MessageTextItem.bind(SourceFile:6)
at com.airbnb.epoxy.EpoxyViewHolder.bind(SourceFile:71)
at com.airbnb.epoxy.BaseEpoxyAdapter.onBindViewHolder(SourceFile:7)
at com.airbnb.epoxy.BaseEpoxyAdapter.onBindViewHolder(SourceFile:2)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:149)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(SourceFile:68)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(SourceFile:526)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:2)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(SourceFile:13)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(SourceFile:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(SourceFile:39)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(SourceFile:295)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(SourceFile:67)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(SourceFile:72)
at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(SourceFile:97)
at androidx.recyclerview.widget.RecyclerView$1.run(SourceFile:32)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1638)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1647)
at android.view.Choreographer.doCallbacks(Choreographer.java:1165)
at android.view.Choreographer.doFrame(Choreographer.java:1047)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1621)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loopOnce(Looper.java:288)
at android.os.Looper.loop(Looper.java:393)
at android.app.ActivityThread.main(ActivityThread.java:9549)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)

```

If I create a new room, I can open it, and then I can send one message, however the app then immediately crashes, and I can't get back into that room again.

Opening the app on another Android device works.

### Outcome

#### What did you expect?
I can open rooms, and send messages. Changing the font weight doesn't cause the app to crash.

#### What happened instead?
The application crashes

### Your phone model

OnePlus 13

### Operating system version

Android 15; Oxygen OS; Security Update June 1 2025

### Application version and app store

1.6.42 [40106422] (G-81317aea)

### Homeserver

Synapse: matrixdotorg/synapse:latest, sha256:c9a74835dfe51fad917144258d2d7e27e788500340567b82e7477067abd5338d

### Will you send logs?

Yes

### Are you willing to provide a PR?

No

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.