BIT101-Android icon indicating copy to clipboard operation
BIT101-Android copied to clipboard

[Bug] 按下举报按钮时闪退

Open rinevard opened this issue 7 months ago • 2 comments

如题,手机型号为小米11pro 复现方法:从主页出发,依次点击 我 -> 帖子 -> 任意点开一个帖子 -> 右上角三个点 -> 举报

手机给出的问题trace:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at cn.bit101.android.features.report.ReportScreenKt$ReportScreen$4.invokeSuspend(ReportScreen.kt:299)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(AndroidUiDispatcher.android.kt:57)
at android.os.Handler.handleCallback(Handler.java:942)
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:8261)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@823aa1a, androidx.compose.runtime.BroadcastFrameClock@f1f894b, StandaloneCoroutine{Cancelling}@7447f28, AndroidUiDispatcher@7d88441]

问题截图:

Image

rinevard avatar Jun 16 '25 03:06 rinevard

感谢反馈, 已成功复现.

原因是 APP 获取到的举报类别是空列表, 而 APP 又会默认选择第一个举报类别, 导致越界, 于是就崩掉了.
至于为什么 APP 会获取到空的举报类别列表, 这个应该是服务器的问题, 因为网页端举报页面里的类别也是空的(
所以对此 Android 端能做的不多, 最多不闪退, 真修好还得等服务器.

不过服务器那边我基本没接触过, 明天帮你问问大佬们(

NylteJ avatar Jun 16 '25 17:06 NylteJ

感谢反馈, 已成功复现.

原因是 APP 获取到的举报类别是空列表, 而 APP 又会默认选择第一个举报类别, 导致越界, 于是就崩掉了. 至于为什么 APP 会获取到空的举报类别列表, 这个应该是服务器的问题, 因为网页端举报页面里的类别也是空的( 所以对此 Android 端能做的不多, 最多不闪退, 真修好还得等服务器.

不过服务器那边我基本没接触过, 明天帮你问问大佬们(

heart heart heart,早点睡觉喵

rinevard avatar Jun 16 '25 23:06 rinevard