Jeon JaeHyeong 34be7a1234 fix(native-file): prevent fatal crash when unlinking missing files (#1832)
fix(native-file): prevent crash when unlinking missing files

NativeFileSpec.unlink is codegened as a void-returning TurboModule
method, which dispatches asynchronously on the mqt_v_native thread.
Throwing "File does not exist" there bypasses every JS try/catch and
surfaces as a fatal AndroidRuntime exception, killing the process.

Make unlink idempotent (POSIX rm -f semantics): no-op when the path
does not exist. The Downloads "delete all" and individual delete
flows previously crashed whenever a chapter row had isDownloaded=true
while its on-disk folder had already been removed (e.g. after backup
restore or external cleanup). The same fix also protects useNovel,
pluginManager, fetch, epub/import, backup/local, backup/utils, and
AdvancedTab call sites that share the same native handler.
2026-05-24 10:41:17 +05:30
2026-05-06 16:55:55 +02:00
2022-04-08 08:19:52 +05:30
2026-04-05 21:39:52 +02:00
2025-05-25 16:39:18 +07:00
2026-05-06 16:55:55 +02:00
2026-05-07 20:25:47 +02:00
2024-11-04 20:21:22 +05:30
2025-10-23 16:39:11 +05:30
2025-05-11 15:46:16 +07:00
2021-03-09 20:12:46 +05:30
2026-04-05 21:39:52 +02:00
2026-05-07 20:25:47 +02:00

LNReader

LNReader is a free and open source light novel reader for Android, inspired by Tachiyomi.

Download

GitHub release (latest by date) GitHub release (latest SemVer)

Get the app from our releases page.

Android 7.0 or higher.

Screenshots

Plugins

LNReader does not have any affiliation with the content providers available.

Plugin requests should be created at lnreader-plugins.

Translation

Help translate LNReader into your language on Crowdin.

Building & Contributing

See CONTRIBUTING.md

License

MIT

S
Description
LNReader fork with an iOS build (SideStore) and the open-lab plugin repository preconfigured
Readme 30 MiB
Languages
TypeScript 73%
C++ 17.8%
Kotlin 4.4%
JavaScript 3.4%
Swift 0.6%
Other 0.7%