soupslurpr / BeauTyXT

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

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

Closed BuriedInTheGround closed 5 months ago

BuriedInTheGround commented 5 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 5 months ago

Hi, did this issue occur in 0.19.0 and 0.18.0?

BuriedInTheGround commented 5 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 5 months ago

Alright, the main one to try is 0.18.0 I think

BuriedInTheGround commented 5 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 5 months ago

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

BuriedInTheGround commented 5 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 5 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 5 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 5 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 5 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 5 months ago

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

soupslurpr commented 5 months ago

@BuriedInTheGround This is fixed in 0.19.2!