安卓客户端编辑Md文件,文件稍大一点,就闪退

软件版本

Client: 2.2.18
Android: 9
手机: 红米 Note
MIUI版本: MIUI 11 20.1.16

问题描述

原本用WebDAV管理文件,后来想在手机上也编辑Markdown文件,但是找了一圈,也没找到合适的编辑器。
下载了新版的客户端之后,发现小的md文件可以直接打开,打开后是带格式的预览,右上角有编辑,点了编辑后可以正常编辑,但是当文件大于20K的时候,可以预览,但不能点编辑,点了编辑后就闪退回文件列表页,没有什么提示。

期望情形

  1. 推荐一个可以编辑完自动同步到网盘上的编辑器,或下一项。
  2. 给一个新的解决方案,在客户端里可以编辑大于20K的md文件。

我们排查下这个问题

下面是系统弹出的崩溃日志,下面的11more不能点。
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.seafile.seadroid2/com.seafile.seadroid2.editor.EditorActivity}: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2947)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3082)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1832)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6821)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.AbstractStringBuilder.replace(AbstractStringBuilder.java:870)
at java.lang.StringBuilder.replace(StringBuilder.java:263)
at com.yydcdut.markdown.syntax.edit.OrderListSyntax.findTrueIndex(OrderListSyntax.java:135)
at com.yydcdut.markdown.syntax.edit.OrderListSyntax.findTrueIndex(OrderListSyntax.java:136)
at com.yydcdut.markdown.syntax.edit.OrderListSyntax.format(OrderListSyntax.java:60)
at com.yydcdut.markdown.syntax.edit.EditFactory.parse(EditFactory.java:173)
at com.yydcdut.markdown.MarkdownEditText.format(MarkdownEditText.java:286)
at com.yydcdut.markdown.MarkdownEditText.access$800(MarkdownEditText.java:44)
at com.yydcdut.markdown.MarkdownEditText$EditTextWatcher.afterTextChanged(MarkdownEditText.java:185)
at com.yydcdut.markdown.MarkdownEditText.setFactoryAndConfig(MarkdownEditText.java:276)
at com.yydcdut.markdown.MarkdownProcessor.live(MarkdownProcessor.java:51)
at com.seafile.seadroid2.editor.EditorActivity.markdown(EditorActivity.java:99)
at com.seafile.seadroid2.editor.EditorActivity.onCreate(EditorActivity.java:55)
at android.app.Activity.performCreate(Activity.java:7224)
at android.app.Activity.performCreate(Activity.java:7213)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
… 11 more