React-native: RCTBridge benötigte dispatch_sync, um RCTDevLoadingView zu laden. Dies kann zu Deadlocks fĂŒhren

Erstellt am 15. Okt. 2017  Â·  106Kommentare  Â·  Quelle: facebook/react-native

Ich erhalte diese Warnung zufÀllig beim Start der iOS-App (dh nicht immer).

Ist das ein Fehlerbericht?

Ja

Haben Sie die Richtlinien fĂŒr BeitrĂ€ge gelesen?

Ja

Umgebung

Betriebssystem: macOS Sierra 10.12.6
Knoten: 6.10.2
Garn: 1.0.2
npm: 5.4.2
WĂ€chter: 4.7.0
Xcode: Xcode 9.0 Build Version 9A235
Android Studio: 2.1 AI-143.2915827

Pakete: (gesucht => installiert)
reagieren: ^ 16.0.0 => 16.0.0
reaktionsnativ: ^ 0,49,3 => 0,49,3

Schritte zum Reproduzieren

  1. Starten Sie die App

    Erwartetes Verhalten

Keine Warnung

TatsÀchliches Verhalten

capture d ecran 2017-10-15 12 49 45

Reproduzierbare Demo

N / A

Einige Pakete benutze ich

https://github.com/antoinerousseau/react-native-custom-components
https://github.com/rebeccahughes/react-native-device-info
https://github.com/evollu/react-native-fcm
https://github.com/gwmccull/react-native-polyfill
https://github.com/getsentry/react-native-sentry

Bug iOS

Hilfreichster Kommentar

Bitte hören Sie auf, +1 s hinzuzufĂŒgen. Dadurch werden E-Mail-Benachrichtigungen generiert, die keine Informationen hinzufĂŒgen. Verwenden Sie stattdessen die Funktion "Reaktion hinzufĂŒgen".

Alle 106 Kommentare

Hier gilt das gleiche!

habe dieses gelbe Problem fĂŒr iOS

Ich sehe das auch. Möglicherweise verwandt mit # 11196.
Ich glaube, dies ist auch der Grund dafĂŒr, dass die App beim Versuch, sie neu zu laden, abstĂŒrzt. es scheitert mit
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method must not be called before the JS thread is created'

Ich bekomme diesen Fehler auch von Zeit zu Zeit unter iOS 11 und ich habe keine Ahnung, wie ich das debuggen soll, um weitere Informationen zu erhalten. Stacktrace hilft in diesem Fall ĂŒberhaupt nicht.

+1

+1

Bitte hören Sie auf, +1 s hinzuzufĂŒgen. Dadurch werden E-Mail-Benachrichtigungen generiert, die keine Informationen hinzufĂŒgen. Verwenden Sie stattdessen die Funktion "Reaktion hinzufĂŒgen".

Gleicher Fehler. Hier sind die Pakete, die ich benutze:

  • React-Native-Device-Info
  • React-Native-Interactable
  • React-Native-Sensitive-Info
  • React-Native-Snackbar
  • React-Native-Splash-Screen
  • reagiere-native-svg
  • React-Native-Vector-Icons

Angesichts der Überschneidung mit der Liste von @antoinerousseau sind die möglichen Orte fĂŒr diesen Fehler:

  • Ein Fehler in React-Native selbst
  • Ein Fehler in den React-Native-Device-Informationen
  • Mehrere Fehler in anderen Bibliotheken als React-Native-Device-Info

Ich habe gerade React-Native-Device-Info hinzugefĂŒgt und bin von rn 0,49 auf 0,50 ĂŒbergegangen. und jetzt habe ich diesen Fehler gefunden. Ich weiß nicht, ob es das Problem ist, aber es ist, als ich das bekam.

Gleicher Fehler...
Also war es nicht meine Schuld?

Gleiches Problem ... Hast du irgendwelche Lösungen?

Gleicher Fehler. Das einzige Paket aus der obigen Liste, das wir verwenden, ist react-native-sentry .

Gleiches Problem hier heute habe ich eine brandneue App gestartet und nur Paket, das ich hinzugefĂŒgt habe
"native-base": "^ 2.3.3",
"reagieren": "16.0.0",
"React-Native": "0,50,3",
"react-native-fcm": "^ 10.0.3"

@rizzomichaelg
+1
"React-Native": "0,49,3",
App stĂŒrzte beim ersten Laden zufĂ€llig ab.

hat es jemand gelöst ??

@dantman Ich habe das Problem sofort nach der Installation von react-native-device-info gesehen, daher vermute ich sehr, dass das Problem zumindest in unserem Fall mit diesem bestimmten Paket zusammenhÀngt.

Das einzige andere Paket, das ich verwende, ist ein reaktionsfreier SchlĂŒsselbund, den ich vor einiger Zeit ohne Probleme installiert habe. Es scheint also eine gute Wahl zu sein.

rebeccahughes / react-native-device-info # 260 scheint eine Meldung zu haben, die sich auf RNDeviceInfo bezieht, wÀhrend sich dieser Fehler auf RCTDevLoadingView bezieht. Es kann also mehr als einen Punkt geben, der diese Warnung auslöst.

Wenn Sie einen Haltepunkt in die folgende Zeile setzen wĂŒrden:

RCTLogWarn(@"RCTBridge required dispatch_sync to load %@. This may lead to deadlocks", _moduleClass);

Sie können sehen, welches Modul / Stack fĂŒr das Laden von RCTDevLoadingView In meinem Fall war es RCTCxxBridge.mm das das Remote-Bundle geladen und den Download-Fortschritt auf RCTDevLoadingView gemeldet hat:

... onProgress:^(RCTLoadingProgress *progressData) {
#if RCT_DEV && __has_include("RCTDevLoadingView.h")
      RCTDevLoadingView *loadingView = [weakSelf moduleForClass:[RCTDevLoadingView class]];
      [loadingView updateProgress:progressData];
#endif
    }];

Hier verwendet die RCTCxxBridge moduleForClass wodurch eine Instanz des Moduls geladen wird, wenn es noch nicht verfĂŒgbar ist. Aufgrund der Warteschlange, die fĂŒr den Block onProgress , wird RCTDevLoadingView in eine Nicht-Hauptwarteschlange geladen, wĂ€hrend fĂŒr RCTDevLoadingView eine Einrichtung der Hauptwarteschlange erforderlich ist.

Ich konnte die Warnung umgehen, indem ich RCTDevLoadingView optimistisch lud, indem ich eine Instanz von meinem RCTBridgeDelegate zurĂŒckgab, indem ich:
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;

Ich konnte die Warnung umgehen, indem ich AppDelegate.m aktualisierte

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

reaktionsnativ: 0,50,4
gleicher Fehler...

reaktionsnativ: 0,51,0
gleicher Fehler...

"reagieren": "16.2.0",
"React-Native": "0,52,0",
gleicher Fehler...

"reagieren": "16.2.0",
"reaktionsnativ": "0,51,0",
"React-Native-Device-Info": "0.13.0"

Meine Lösung bestand darin, reaktionsnative GerĂ€teinformationen aus der Pod-Datei zu verschieben und manuell im Projekt zu verknĂŒpfen. Das schien das Problem zu lösen. Ich denke, ein anderer Ansatz könnte darin bestehen, CxxBridge als Unterspezifikation fĂŒr React in die Pod-Datei aufzunehmen, aber das erfordert Folly (und damit Boost), und das gesamte Setup ist umstĂ€ndlich / dauert lange. Wenn Sie eine schnelle Lösung wĂŒnschen, entfernen Sie einfach die Pakete, die das Problem verursachen, aus dem Pod.

Keine "React-Native-Device-Info" installiert:
Problem besteht in 0.54.2:

"reagieren": "16.3.0-alpha.2",
"reaktionsnativ": "0,54,2",
"React-Native-Action-Button": "^ 2.8.4",
"react-native-admob": "^ 2.0.0-beta.4",
"React-Native-Animatable": "^ 1.2.4",
"React-Native-Awesome-Alerts": "^ 1.0.7",
"React-Native-Elements": "^ 0.19.0",
"react-native-fbsdk": "^ 0.7.0",
"React-Native-Linear-Gradient": "^ 2.4.0",
"React-Native-Parallax-Scroll-Ansicht": "^ 0.21.0",
"React-Native-Photo-Grid": "0.0.2",
"React-Native-Responsive-Dimensionen": "^ 1.0.2",
"React-Native-Snap-Karussell": "^ 3.6.0",
"React-Native-Vector-Icons": "^ 4.5.0",
"React-Navigation": "^ 1.5.7"

Es war mit dem "React-Native-Action-Button": "^ 2.8.4", HinzufĂŒgen von shadowStyle={{shadowOpacity: 0.9}} löste die Warnung ..

Gleiches Problem hier.

Gleicher Fehler.
RN 0,54,4

Hat jemand die Lösung?

Der Fehler tritt auch bei frisch / neu erstellten Projekten auf.

"reagieren": "16.3.1",
"reaktionsnativ": "0,54,4"

gleich

+1

@antoinerousseau irgendein Update zu diesem Thema?

Ich wĂŒrde die von @devburmistro bereitgestellte Lösung nicht empfehlen. FĂŒr mein Projekt wurde durch die Aufnahme eine Art Race-Bedingung erstellt, bei der sich dieser Assertionsfehler beim Start beim AusfĂŒhren vom Simulator zufĂ€llig manifestiert.

Mein Setup:

react-native-cli: 2.0.1
react-native: 0.53.0

Ich hatte gerade dieses Problem, nachdem ich mein Repo von Grund auf neu eingerichtet und den reinen JS-Code wieder dort eingefĂŒgt hatte. Ein möglicher Unterschied zwischen dem vorherigen und diesem neuen Repo besteht darin, dass ich jetzt Cocoapods verwende.

Wer benutzt keine Cocoapods?

Dies geschah direkt nachdem ich hinzugefĂŒgt hatte

React-Native-Blur

zu einer Share Extension-Ansicht, die in verschachtelt ist

React-Native-Modalbox

@ Babazon Verwenden Sie in diesem

Es tut uns leid. Ich konnte kein Debug- / Konsolenprotokoll in der Ansicht "Freigabeerweiterung" erstellen, sondern nur die Haupt-App.

+1

Danke, dass du das gepostet hast! Es sieht so aus, als wĂŒrde sich Ihr Problem möglicherweise auf eine Ă€ltere Version von React Native beziehen. Können Sie das Problem in der neuesten Version v0.55 reproduzieren ?

Vielen Dank fĂŒr Ihre BeitrĂ€ge.

@ React-Native-Bot-Problem tritt immer noch bei React Native 0.55 auf

@ react-native-bot Wenn Sie Cocoapods zum Verwalten von React Native verwenden, wird das Problem angezeigt.

Versionen versuche ich 0.50.4 und 0.55.4

Ich habe gerade react-native-svg auf React Native 0.55.3 installiert und dieses Problem ist aufgetreten.

screen shot 2018-05-30 at 16 04 07

Problem tritt immer noch auf:

React-Native-Cli: 2.0.1
reaktionsnativ: 0,55,4

Ich habe genau die gleiche Warnung mit einem neu erstellten Projekt, ohne dass Code hinzugefĂŒgt wurde, aber nur Firebase-AbhĂ€ngigkeiten eingefĂŒgt wurden.
Ich benutze: reagieren: 16.3.1
reaktionsnativ: 0,55,4
Vielen Dank

Ich habe das gleiche Problem, aber fĂŒr mich lag es daran, dass das vorherige Terminalfenster ausgefĂŒhrt wurde, als ich den Build von Xcode erneut ausfĂŒhrte. Ich habe gerade das Terminal und den Simulator verlassen und den Build erneut ausgefĂŒhrt. Dieses Problem wurde behoben.

Ich habe auch React-Native-Device-Info installiert, aber die gelbe Meldung ist fĂŒr mich etwas anders: 'RCTBridge benötigt dispatch_sync, um RCCManagerModule zu laden ...'

Ich wollte sagen, dass ich diese Warnung erhalte, wenn ich map ĂŒber ein Array gehe, um neue Elemente zurĂŒckzugeben oder eine style Requisite an benutzerdefinierte Komponenten zu ĂŒbergeben, aber jetzt scheint die Warnung unvorhersehbar.

Dieses Problem ist auch unter OS11 aufgetreten.

  • Reaktionsnavigation
  • React-Native-Vector-Icons

Ich sehe hier einige Leute, die die Verwendung von Vektorsymbolen erwÀhnt haben.

Ich hatte auch das gleiche Problem fĂŒr mich, ich habe die VerknĂŒpfung zum Entfernen und Entfernen von React-Native-Device-Informationen und jetzt wird diese Warnung nicht angezeigt.

Ich hatte das gleiche Problem, nachdem ich React-Native-Vector-Symbole hinzugefĂŒgt, entfernt und die Warnung verschwunden war.

Zu Ihrer Information, diese Warnung wurde heute nach dem Neuladen mit aktiviertem Remote-Debugger angezeigt. Fernbedienung ausgeschaltet, neu geladen, keine Warnung. Fernbedienung wieder eingeschaltet, neu geladen, keine Warnung.

Zu Ihrer Information, diese Warnung wurde heute nach dem Neuladen mit aktiviertem Remote-Debugger angezeigt. Fernbedienung ausgeschaltet, neu geladen, keine Warnung. Fernbedienung wieder eingeschaltet, neu geladen, keine Warnung.

~ Nachdem ich den Kommentar von lud ich den Debugger neu und er zeigte

Nein, das nicht

iOS 12, RN 0.57.0 gleiches Problem.

wie zu lösen?
oder ignorieren ist?

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['RCTBridge']);

Ja, ich habe dieses Problem auch nach dem HinzufĂŒgen von React-Native-Video, aber was bedeutet das? Es scheint die Wiedergabe von Videos nicht zu verhindern. Warum verursachen all diese Komponenten von Drittanbietern den Fehler? Fehlt uns etwas bei der Entwicklung unserer nativen Module?

Gleiches Problem unter iOS 12.1, RN 0.57.4 ohne react-native-device-info

Ich habe ein Problem

"lodash": "^4.17.10",
"react": "16.4.1",
"react-native": "0.56.0",
"react-native-check-box": "^2.1.0",
"react-native-collapsible": "^1.2.1",
"react-native-elements": "^0.19.1",
"react-native-google-analytics-bridge": "^5.8.0",
"react-native-google-places-autocomplete": "^1.3.9",
"react-native-map-clustering": "^1.3.0",
"react-native-maps": "^0.21.0",
"react-native-masked-text": "^1.7.2",
"react-native-modal-picker": "0.0.16",
"react-native-onesignal": "^3.2.8",
"react-native-simple-radio-button": "^2.7.2",
"react-native-svg": "^8.0.0",
"react-native-ui-kitten": "^3.0.1",
"react-native-vector-icons": "^5.0.0",
"react-navigation": "^2.11.2",
"rn-sliding-up-panel": "^1.2.1",
"victory-native": "^30.5.0"

In IOS wird "RCTBridge benötigt dispatch_snyc, um RCTDevLoadingView zu laden. Dies kann zu Deadlocks fĂŒhren."

Vielleicht sollten Sie Project -> Clean in Ihrem Xcode eingeben und dann Ihre Anwendung erneut ausfĂŒhren.

Ich habe bestÀtigt, dass dieser Kommentar die Lösung ist. Vielen Dank, dass Sie @mattijsf!

Finden Sie Ihre RCTBridgeDelegate und ĂŒberschreiben Sie die extraModulesForBridge -Methode.

Ziel c

<strong i="11">@interface</strong> MyBridgeDelegate : NSObject <RCTBridgeDelegate>
<strong i="12">@end</strong>

<strong i="13">@implementation</strong> MyBridgeDelegate

- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
{
  return @[
#if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]],
#endif
  ];
}

<strong i="14">@end</strong>

Swift 4

class MyBridgeDelegate: NSObject, RCTBridgeDelegate {
  func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
    var modules: [Any]! = []
    if RCT_DEV == 1 {
      modules.append(bridge.module(for: RCTDevLoadingView.self))
    }
    return modules as? [RCTBridgeModule]
  }
}

Repro auf iOS12, RN 0.57.8

image
meine AbhÀngigkeit, das gleiche Problem

@aleclarson was genau macht dieser Code?

@ccorcos LĂ€dt das RCTDevLoadingView frĂŒher, sodass es den Hauptthread nicht blockieren muss, wenn es von RN geladen wird. Dieser Kommentar könnte eine einfachere Lösung fĂŒr Sie sein.

Ich bin mir nicht sicher, ob dies bei anderen noch passiert, aber bei RN 0.57.8 + iOS 11.3 (zumindest).

Ich verwende die Änderung aus dem obigen Kommentar von @devburmistro erfolgreich

Angesichts dieses Problems

RN 0,58,3
iOS 11.4, 12.1

und es fĂŒhrt zu einem Deadlock. Es passiert mir, wenn ich benutzerdefiniertes Modal schließe

Ich hatte dies nicht auf vorherigen 0,57,8, was in Ordnung war

Gleiches gilt hier, wenn Sie dies nach dem Upgrade auf RN 0.58.3 erhalten

Mein genauer Fehler ist: Unable find module for DevLoadingView , die oben genannten Lösungen beheben ihn nicht fĂŒr mich

screen shot 2019-01-30 at 0 54 04

Scheint im Zusammenhang mit diesem Commit zu stehen, das tatsĂ€chlich zu RN 0.58.3 hinzugefĂŒgt wurde

https://github.com/facebook/react-native/commit/d7a0c44590bcf3fb9d055aeae3391d5bcd7e21be#diff -a2a67635fffd7b690d14dc17ae563a71

Nach dem heutigen Upgrade auf RN 0.58.3 tritt das gleiche Problem auf: "Modul fĂŒr DevLoadingView kann nicht gefunden werden" wie bei @oferRounds .

Es scheint auszulösen, wenn eine App zum ersten Mal im Simulator geöffnet wird. Nachfolgende Neuladungen (cmd-R) zeigen den Fehler nicht an.

BEARBEITEN: FĂŒr diesen speziellen Fehler wurde ein separates Problem eingereicht: # 23235

Ich kann auch bestÀtigen, dass dies unter iOS mit 0.58.3 immer noch ein Problem ist.

Einige interessante Beobachtungen:

  • Wie @superguineapig sagte, wird es nach dem Neuladen der App nicht
  • Wenn Sie alle Terminalinstanzen beenden und die App erstellen / den Packager neu starten, wird der Fehler nicht angezeigt. Wenn Sie dann jedoch den Packager geöffnet lassen und die App aus Xcode neu erstellen, wird der Fehler angezeigt, nachdem die App erneut eine Verbindung zum Packager hergestellt hat.

Bearbeiten: Ich kann bestÀtigen, dass diese Problemumgehung immer noch eine praktikable Lösung ist.

Ich konnte die Warnung umgehen, indem ich AppDelegate.m aktualisierte

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

Das hat bei mir funktioniert.

Konnte jemand ein benutzerdefiniertes RCTBridgeDelegate registrieren, wĂ€hrend er die reaktionsnative Navigation verwendete? Sie sollten in der Lage sein, einen Delegaten ĂŒber den Parameter bridgeManagerDelegate ĂŒbergeben, aber er scheint fehlerhaft zu sein (die fĂŒr extraModulesForBridge bereitgestellte RCTBridge ist immer nil ).

Ich habe gerade damit begonnen, dies sofort zu bekommen, nachdem ich react-native-device-info auf RN 0.58.6 und iOS 12 hinzugefĂŒgt habe.

OK, dieser Kommentar scheint es fĂŒr mich behoben zu haben.

React Native 0.59.1

Ich sehe diese Warnung gleich nach der Installation von React-Native-Device-Infos. Gibt es eine echte Lösung?

Ich sehe dies auch zufĂ€llig und habe keine Änderungen an meinem App-Code vorgenommen, außer dem, was erforderlich ist (Konfiguration), damit beim Upgrade von RN 0.57.8 auf 0.59.5 alles wieder funktioniert. In meinem Fall handelt es sich bei der fraglichen lib um CodePush mit zwei Yellowbox-Warnungen:

RCTBridge required dispatch_sync to load CodePush. This may lead to deadlocks
und
Required dispatch_sync to load constants for CodePush. This may lead to deadlocks

Dieses Problem ist lang. Ich nehme an, die Ursache festzunageln ist immer noch ein RĂ€tsel? Lassen Sie mich wissen, welche anderen Debug-Informationen ich zur VerfĂŒgung stellen kann, um zu helfen.


Mein package.json:

{
  "name": "wonderswipe",
  "version": "0.0.1",
  "private": true,
  "eslintConfig": {
    "parserOptions": {
      "ecmaVersion": 7,
      "sourceType": "module",
      "ecmaFeatures": {
        "jsx": true
      }
    },
    "env": {
      "browser": false,
      "node": true
    },
    "plugins": [
      "react",
      "react-native",
      "react-hooks"
    ],
    "rules": {
      "comma-dangle": [
        2,
        "always-multiline"
      ],
      "semi": [
        2,
        "never"
      ],
      "react-native/no-unused-styles": 2,
      "react-native/split-platform-components": 2,
      "react-hooks/rules-of-hooks": "error"
    }
  },
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "postinstall": "patch-package"
  },
  "dependencies": {
    "@postlight/mercury-parser": "^2.0.0",
    "@react-native-community/async-storage": "^1.3.3",
    "@react-native-community/viewpager": "^1.1.6",
    "babel-plugin-idx": "^2.4.0",
    "buffer": "^5.2.1",
    "he": "^1.1.0",
    "idx": "^2.5.5",
    "lodash": "^4.17.2",
    "moment": "^2.19.0",
    "moment-timezone": "^0.5.10",
    "node-summary": "../node-summary",
    "react": "16.8.3",
    "react-native": "^0.59.4",
    "react-native-actionsheet": "^2.4.2",
    "react-native-blur": "^3.2.0",
    "react-native-cached-image": "../react-native-cached-image",
    "react-native-cheerio": "^1.0.0-rc.4",
    "react-native-code-push": "^5.3",
    "react-native-custom-tabs": "^0.1.7",
    "react-native-easy-toast": "^1.0.9",
    "react-native-firebase": "^5.3.1",
    "react-native-fit-image": "^1.4.8",
    "react-native-flanimatedimage": "^0.4.0",
    "react-native-highlight-words": "^1.0.1",
    "react-native-keep-awake": "^4.0.0",
    "react-native-linear-gradient": "^2.0.0",
    "react-native-modal-dropdown": "^0.6.2",
    "react-native-modalbox": "^1.6.0",
    "react-native-orientation": "^3.1.3",
    "react-native-parallax-scroll-view": "../react-native-parallax-scroll-view",
    "react-native-rate": "^1.0.8",
    "react-native-safari-view": "^2.0.0",
    "react-native-sentry": "^0.42.0",
    "react-native-sha256": "^1.1.1",
    "react-native-status-bar-size": "^0.3.2",
    "react-native-swiper": "^1.5.14",
    "react-native-tooltip": "^5.2.0",
    "react-native-tts": "^3.0.0",
    "react-native-vector-icons": "^6.4.2",
    "react-native-webview": "^5.7.0",
    "react-native-webview-bridge": "^0.40.1",
    "react-redux": "^7.0.1",
    "redux": "^4.0.0",
    "redux-thunk": "^2.1.0"
  },
  "devDependencies": {
    "babel-eslint": "^10.0.1",
    "eslint": "^5.15.1",
    "eslint-plugin-react": "^7.12.4",
    "eslint-plugin-react-hooks": "^1.0.1",
    "eslint-plugin-react-native": "^3.6.0",
    "patch-package": "^6.1.2",
    "postinstall-postinstall": "^2.0.0",
    "redux-logger": "^3.0.6"
  },
  "resolutions": {
    "babel-core": "7.0.0-bridge.0"
  }
}

image

Ich habe diesen Fehler durch @grossingdev Kommentar

Bei React-Native 0.59.3 sollte der Code wie folgt aussehen, um das Problem zu umgehen:

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  #if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]];
  #endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"YourAppName"
                                            initialProperties:nil];

Nach dem Aktualisieren der AppDelegate.m-Datei beim Integrieren der Google-Karte react-native-maps in ios App wird dieselbe Warnung angezeigt.
"react-native": "0.59.5"

FĂŒr mich - das hat funktioniert ---
"reagieren": "16.8.3",
"reaktionsnativ": "0,59,9",
AppDelegate.m-Datei

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
//  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
//                                                   moduleName:@"mobileapp"
//                                            initialProperties:nil];


  NSURL *theurl ;
#if DEBUG
  theurl = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  theurl = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:theurl
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"mobileapp"
                                            initialProperties:nil];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

@ amitkumar3968 formatiere deinen Kommentar als Code

Ich habe gerade einen Àhnlichen Fehler erhalten:
Screenshot 2019-07-23 at 10 27 04


mein package.json:

{
  "name": "auth",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "firebase": "^6.3.1",
    "react": "16.8.6",
    "react-native": "0.60.0"
  },
  "devDependencies": {
    "@babel/core": "7.5.0",
    "@babel/runtime": "7.5.0",
    "@react-native-community/eslint-config": "0.0.3",
    "babel-jest": "24.8.0",
    "eslint": "6.0.1",
    "jest": "24.8.0",
    "metro-react-native-babel-preset": "0.54.1",
    "react-test-renderer": "16.8.6"
  },
  "jest": {
    "preset": "react-native"
  }
}

Reload hat das Problem behoben, aber es scheint, dass etwas nicht stimmt, wenn dies zufÀllig geschieht.

Dieses Problem tritt nur auf, wenn ich den Debugger deaktiviere. Beim Öffnen des Perf-Monitors habe ich festgestellt, dass der RAM nach dem Deaktivieren von ± 100 MB auf ± 300 MB wechselt.

Mit Debugger:
Screen Shot 2019-07-25 at 9 07 45 AM

Ohne Debugger:
Screen Shot 2019-07-25 at 9 08 09 AM

Die vorgeschlagene Problemumgehung funktioniert in meinem Fall nicht, da nur die Warnung nicht mehr angezeigt wird, das Problem mit dem Speicher jedoch nicht behoben wird.

Ich frage mich, ob dieses Problem die Leistung der App im Release-Modus beeintrĂ€chtigen wĂŒrde.

Die oben erwĂ€hnte Problemumgehung hat dieses Problem auch fĂŒr mich bei React Native gelöst. 0.59.10 :

diff --git a/ios/Foo/AppDelegate.m b/ios/Foo/AppDelegate.m
index e446e79..2c28719 100644
--- a/ios/Foo/AppDelegate.m
+++ b/ios/Foo/AppDelegate.m
@@ -18,6 +18,11 @@

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

+// https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+#if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+#import <React/RCTDevLoadingView.h>
+#endif
+
 <strong i="7">@implementation</strong> AppDelegate

@@ -39,6 +44,13 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(

   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
+
+  // https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+  #if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+  [bridge moduleForClass:[RCTDevLoadingView class]];
+  #endif
+
   RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"Foo" initialProperties:nil];
   rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

Der einzige Unterschied besteht darin, dass ich genau die gleiche Logik zum Laden gefunden habe (der RCT_DEV && __has_include(<React/RCTDevLoadingView.h>) Teil) ...

Habe gerade 2 mit react-native-firebase . Passiert selten aber:
image
image

Ich konnte dieses Problem neu erstellen, indem ich App-Symbole mit Images.xcassets/AppIcon.appiconset react-native 0.61.2 zum Verzeichnis

reaktionsnativ 0,59,10
gleicher Fehler.

gleiches Problem hier !! Hat jemand dieses Problem gelöst?

Ich konnte die Warnung umgehen, indem ich AppDelegate.m aktualisierte

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

Diese Problemumgehung löste die Warnung. Vielen Dank.

Gleiches Problem, aber wenn ich den Block der CodekomponenteDidUpdate lösche, verschwindet diese Warnung. Aber doch doch doch brauche ich componentDidUpdate.

Erstens: Öffnen Sie Xcode, normalerweise Xcode-Antwort, wenn Sie eine Komponente installieren möchten: Klicken Sie auf Installieren

Wenn Sie die macOS-Software aktualisieren, mĂŒssen Sie Xcode zum Aktualisieren öffnen

Ich konnte die Warnung umgehen, indem ich AppDelegate.m aktualisierte

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

@grossingdev was ist der jsCodeLocation bitte? Ich weiß, dass es eine URL sein soll, aber worauf sollte es verweisen?

Habe gerade 2 mit react-native-firebase . Passiert selten aber:
image
image

Firebase verursacht diesen Fehler fĂŒr mich. Teilen Sie uns mit, wie Sie es gelöst haben? @fungilation

@ abdi4 Ich bin auch gerade darauf

@zloka nein das passiert zufÀllig und

Der einfachste Weg, diese oder eine andere Warnung zu ignorieren, ist

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings([
    'RCTBridge'
]);

Dieses Problem tritt fĂŒr mich nicht deterministisch auf. Die einzige Lösung, die ich habe, ist, die App von meinem GerĂ€t zu löschen und erneut auszufĂŒhren.

Schnelle Lösung:

let bridge = RCTBridge (bundleURL: jsCodeLocation, moduleProvider: nil, launchOptions: nil)
#if RCT_DEV
BrĂŒcke? .module (fĂŒr: RCTDevLoadingView.self)
#endif
let rootView = RCTRootView (bridge: bridge!, moduleName: "AppMain", initialProperties: nil)

Hey, es sieht so aus, als ob in letzter Zeit keine AktivitĂ€ten zu diesem Thema stattgefunden haben. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weiteren AktivitĂ€ten stattfinden. Sie können dieses Problem auch als "Diskussion" kennzeichnen oder zum "Backlog" hinzufĂŒgen, und ich werde es offen lassen. Vielen Dank fĂŒr Ihre BeitrĂ€ge.

Hey, es sieht so aus, als ob in letzter Zeit keine AktivitĂ€ten zu diesem Thema stattgefunden haben. Wurde das Problem behoben oder erfordert es immer noch die Aufmerksamkeit der Community? Dieses Problem kann geschlossen werden, wenn keine weiteren AktivitĂ€ten stattfinden. Sie können dieses Problem auch als "Diskussion" kennzeichnen oder zum "Backlog" hinzufĂŒgen, und ich werde es offen lassen. Vielen Dank fĂŒr Ihre BeitrĂ€ge.

Hier ist deine AktivitÀt. Die Warnung wird weiterhin in neuen Apps angezeigt.

@sospedra Könnten Sie ein Repo dieses Ereignisses mit der React Native-Vorlage ohne externe AbhÀngigkeiten bereitstellen?

In den FĂ€llen, in denen dies bei Bibliotheken von Drittanbietern der Fall ist, sollten Probleme bei diesen Bibliotheken eingereicht werden

Das gleiche Problem bei 0.63.2 Ich bin nicht sicher, was es verursacht. Es passiert zufÀllig, manchmal funktionieren alle Interaktionen der App nicht mehr.

Dieselbe Warnung gilt nur fĂŒr React-Native-Macos beim erneuten Laden
NB: fĂŒr mich mit RN 0.62.2

Ich habe die gleiche Warnung mit einer Catalyst-App erhalten.

Ich habe den Simulator geschlossen, die U-Bahn getötet, in XCode build and run Warnung verschwunden!

Durch das Schließen des Metro-Bundlers und das Deinstallieren der App vom Simulator wurde die Warnung ausgeblendet. Aber nicht sicher, was unter der Haube passiert. Nach dem HinzufĂŒgen des Thunk-Pakets wurde eine Warnung angezeigt.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen