soupslurpr / BeauTyXT

A beautiful, private, secure, and minimalistic Text, Markdown, and Typst editor.
https://beautyxt.app
ISC License
103 stars 7 forks source link

Crash upon file opening on Android 10 with BeauTyXT 0.19.1 #134

Closed BuriedInTheGround closed 10 months ago

BuriedInTheGround commented 10 months ago

Problem

The application crashes every time I try to open a file (I have actually only tried .md and .txt files, but I can try all other file types if needed for debugging). This happens both when I open the file directly from the BeauTyXT app and when I open the file from a file explorer app by selecting BeauTyXT to open it, although in the latter case I could sometimes see the file contents for a fraction of a second.

Device / Android OS version

OnePlus 5 / OxygenOS 10.0.1 (Android 10)

BeauTyXT version

0.19.1

Installed from

Accrescent

soupslurpr commented 10 months ago

Hi, did this issue occur in 0.19.0 and 0.18.0?

BuriedInTheGround commented 10 months ago

Hi! Actually, I just installed the application yesterday, so version 0.19.1 is the first one I'm using. I will try some of the previous versions and let you know.

soupslurpr commented 10 months ago

Alright, the main one to try is 0.18.0 I think

BuriedInTheGround commented 10 months ago

I just tried both 0.19.0 and 0.18.0 and the situation is the same, the app crashes when I try to open text or markdown files.

I don't get any error logs or similar, so I'm not sure how I can help with debugging. I am open to suggestions.

soupslurpr commented 10 months ago

Could you run adb to get the logcat where the app crashes?

BuriedInTheGround commented 10 months ago

No problem, I'll try tonight or tomorrow. If you can point me to a quick guide it would be helpful, I am not very familiar with Android development unfortunately! Otherwise, I'm sure I will find how to do it :)

soupslurpr commented 10 months ago

https://developer.android.com/studio/debug/logcat might help. Right now I'm building a debug apk with a change reverted that I think may be responsible.

soupslurpr commented 10 months ago

Try this apk please. This should hopefully fix it as it was the most likely cause.

https://wormhole.app/577vN#_b-N9ULFC7Znu3kSZi_iew

BuriedInTheGround commented 10 months ago

Could you run adb to get the logcat where the app crashes?

I tried, the following is what I extracted (using version 0.19.1 from Accrescent). It does not seem very useful... (But it may not be a problem, see below.)

01-11 21:57:15.126  1553  5482 E InputDispatcher: Window handle Window{d341802 u0 dev.soupslurpr.beautyxt/dev.soupslurpr.beautyxt.MainActivity} has no registered input channel
01-11 21:57:31.540 30536 30536 F DEBUG   : pid: 26891, tid: 26891, name: slurpr.beautyxt  >>> dev.soupslurpr.beautyxt <<<
01-11 21:57:32.631  1553  2517 E InputDispatcher: channel 'd8c50f8 dev.soupslurpr.beautyxt/dev.soupslurpr.beautyxt.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
01-11 21:57:46.256  1553  2514 E InputDispatcher: Window handle Window{78de3fb u0 dev.soupslurpr.beautyxt/dev.soupslurpr.beautyxt.MainActivity} has no registered input channel
01-11 21:57:49.787 29575 30832 E chromium: [ERROR:simple_file_enumerator.cc(21)] opendir /data/user/0/dev.soupslurpr.beautyxt/cache/WebView/Default/HTTP Cache/Code Cache/wasm: No such file or directory (2)
01-11 21:57:50.325 30855 30855 F DEBUG   : pid: 29576, tid: 30595, name: Binder:29576_2  >>> dev.soupslurpr.beautyxt:file_view_model_rust_library_isolated_process:dev.soupslurpr.beautyxt.ui.F <<<
01-11 21:57:50.594  1553 30859 E FrameworkEventCollector: dev.soupslurpr.beautyxt:file_view_model_rust_library_isolated_process:dev.soupslurpr.beautyxt.ui.FileViewModelRustLibraryIsolatedService
01-11 21:57:50.594  1553 30859 E FrameworkEventCollector: dev.soupslurpr.beautyxt:file_view_model_rust_library_isolated_process:dev.soupslurpr.beautyxt.ui.FileViewModelRustLibraryIsolatedService
01-11 21:57:50.622 29575 29575 E AndroidRuntime: FATAL EXCEPTION: main
01-11 21:57:50.622 29575 29575 E AndroidRuntime: Process: dev.soupslurpr.beautyxt, PID: 29575
01-11 21:57:50.622 29575 29575 E AndroidRuntime: android.os.DeadObjectException
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.os.BinderProxy.transactNative(Native Method)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.os.BinderProxy.transact(BinderProxy.java:557)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at o5.r0.a(SourceFile:1)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at r5.x.h(SourceFile:77)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at z5.a.n(SourceFile:1)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at t6.a.c(SourceFile:139)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at h7.c.A1(SourceFile:12)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at o6.a.i0(SourceFile:80)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at h7.c.W0(SourceFile:30)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at r5.y.g(SourceFile:1)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at r5.r.a(SourceFile:93)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at r5.r.g0(SourceFile:16)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at d2.m.a(SourceFile:14)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at d2.m.m(SourceFile:8)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at androidx.compose.material3.x1.e(SourceFile:65)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at o0.y.a(SourceFile:67)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at o0.z.c(SourceFile:71)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at q.d.a(SourceFile:4)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at q.d.m(SourceFile:83)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at d2.g.setUpdate(SourceFile:1)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at d2.n.setUpdateBlock(SourceFile:1)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at d2.j.a(SourceFile:34)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at d2.j.a0(SourceFile:131)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at f0.n.a(SourceFile:282)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at f0.n.U(SourceFile:44)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at f0.a0.U(SourceFile:43)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at f0.i0.j(SourceFile:60)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at f0.i0.i(SourceFile:6)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at f0.n2.g0(SourceFile:168)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at androidx.compose.ui.platform.z0.doFrame(Unknown Source:6)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at androidx.compose.ui.platform.x0.doFrame(SourceFile:48)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1161)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.view.Choreographer.doCallbacks(Choreographer.java:986)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.view.Choreographer.doFrame(Choreographer.java:894)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1148)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:883)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:100)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7697)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
01-11 21:57:50.622 29575 29575 E AndroidRuntime:        Suppressed: t6.f: [o1{Cancelling}@1a810bd, Dispatchers.Main.immediate]

Try this apk please. This should hopefully fix it as it was the most likely cause.

https://wormhole.app/577vN#_b-N9ULFC7Znu3kSZi_iew

I tried this APK (both the one before your comment edit and the newer one) and it actually works!

Let me know if there's anything else I can do.

soupslurpr commented 10 months ago

Ah okay thanks, then the issue was that I was using a flag to reduce the size of the Rust library included with BeauTyXT by around 1 MB each (there are two of them, one for aarch64 and one for x86_64). But this also caused an incompatibility with older kernel versions that didn't support this library file size reduction.

BuriedInTheGround commented 10 months ago

I see. Well, I'll wait for a new release. In the meantime, thanks for your work! :smile:

soupslurpr commented 10 months ago

@BuriedInTheGround This is fixed in 0.19.2!