Android: initialize cannot be retried after it throws
I maintainer di solito rispondono entro 3 giorni
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 57/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- android, react-native, typescript
Direzione di ricerca
Start by reading the Android implementation of ReactNativeBrownfield.initialize, especially the initialized flag, nativeLibsLoaded, and the reactHostFactory path described in the report. Trace the retry behavior when native library loading or host creation throws, and check the Android tests covering initialization if present. Done means a failed call can be retried and the original error is not replaced by an uninitialized shared access.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
On Android, ReactNativeBrownfield.initialize marks itself initialized before it does any work (initialized.getAndSet(true)). If loading native libraries or creating the ReactHost throws, the flag stays true:
- The first call throws, for example an
UnsatisfiedLinkErrorfrom a native module's static initializer whilePackageListis built insidereactHostFactory. - The host catches it and calls
initializeagain later. - The second call takes the "already initialized" branch and returns without error, but
instancewas never set. - The first
ReactNativeBrownfield.sharedaccess (for example inReactNativeFragment) throwsUninitializedPropertyAccessException.
nativeLibsLoaded has the same problem: if SoLoader.init or load() throws, a retry skips them.
So a host cannot recover from a failed start, and the real error is replaced by an unrelated one.
Context
We hit the first error in production: a Nitro module's System.loadLibrary failed with dlopen failed: library ".../split_config.arm64_v8a.apk!/lib/arm64-v8a/libX.so" not found on a few Android 13–14 devices. It was transient: the next process loaded it fine. We want to catch it and keep the app usable, but initialize cannot be retried today.
Expected
If initialize throws, the next call runs it again.
Versions
@callstack/react-native-brownfield5.1.0; the same code is in 6.0.1 andmain- React Native 0.86.3
- Lingua principale
- TypeScript
- Stelle
- 553
- Fork
- 58
- Merge medio
- 3g 18h
- PR unite (30g)
- 16
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di callstack/react-native-brownfield
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
callstack/react-native-brownfield#502 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
navigation:codegen: optional number and boolean params break the iOS buildForse già presa @RaphaelFakhri l’ha presa 2 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
callstack/react-native-brownfield#518 ·
I maintainer di solito rispondono entro 3 giorni
-
`package:ios --add-spm-package`: allow project-declared extra XCFrameworks as binary targetsForse già presa @DanielPotorCK l’ha presa 10 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
callstack/react-native-brownfield#468 ·
I maintainer di solito rispondono entro 3 giorni
-
iOS: emitOnBrownfieldMessage: can crash with std::bad_function_call when native posts before JS requires the TurboModule (cold-start race)Forse già presa @tlq5l l’ha presa 7 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
callstack/react-native-brownfield#420 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
callstack/react-native-brownfield#406 ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di callstack/react-native-brownfield
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
documentation easy good first issue help wanted
Difficoltà 1/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Billion-context documentation addendum: nudge is independent of window occupancy. | billion-context 文档补充:nudge 与窗口占用无关Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
ranxianglei/billion-context#5893 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
microsoft/monaco-editor#5575 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100