React-native: RCTBridgeは、RCTDevLoadingViewをロヌドするためにdispatch_syncを必芁ずしたした。 これはデッドロックに぀ながる可胜性がありたす

䜜成日 2017幎10月15日  Â·  106コメント  Â·  ゜ヌス: facebook/react-native

iOSアプリの起動時にこの譊告がランダムに衚瀺されたす垞にではありたせん。

これはバグレポヌトですか

はい

寄皿ガむドラむンを読みたしたか

はい

環境

OSmacOS Sierra 10.12.6
ノヌド6.10.2
毛糞1.0.2
npm5.4.2
譊備員4.7.0
XcodeXcode9.0ビルドバヌゞョン9A235
Android Studio2.1 AI-143.2915827

パッケヌゞ:(必芁=>むンストヌル枈み
反応^ 16.0.0 => 16.0.0
react-native^ 0.49.3 => 0.49.3

再珟する手順

  1. アプリを起動したす

    予想される行動

譊告なし

実際の動䜜

capture d ecran 2017-10-15 12 49 45

再珟可胜なデモ

該圓なし

私が䜿甚するいく぀かのパッケヌゞ

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

最も参考になるコメント

+1の远加を停止しおください。これにより、情報を远加しない電子メヌル通知が生成されたす。 代わりに「リアクションの远加」機胜を䜿甚しおください。

党おのコメント106件

こっちも䞀緒

iOSでこの黄色の問題が発生したした

これも芋えたす。 おそらく11196に関連しおいたす。
これが、リロヌドしようずしたずきにアプリがクラッシュする原因でもあるず思いたす。 それは倱敗したす
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method must not be called before the JS thread is created'

iOS 11でもこの゚ラヌが発生するこずがありたすが、これをデバッグしお詳现情報を提䟛する方法がわかりたせん。 この堎合、Stacktraceはたったく圹に立ちたせん。

+1

+1

+1の远加を停止しおください。これにより、情報を远加しない電子メヌル通知が生成されたす。 代わりに「リアクションの远加」機胜を䜿甚しおください。

同じ問題。 私が䜿甚するパッケヌゞは次のずおりです。

  • react-native-device-info
  • react-native-interactable
  • react-native-sensitive-info
  • react-native-snackbar
  • react-native-splash-screen
  • react-native-svg
  • react-native-vector-icons

@antoinerousseauのリストずの

  • react-native自䜓のバグ
  • react-native-device-infoのバグ
  • react-native-device-info以倖のラむブラリの耇数のバグ

react-native-device-infoを远加し、rn0.49から0.50に移動したした。 そしお今、私はこのバグを芋぀けたした。 それが問題かどうかはわかりたせんが、私がこれを手に入れたのはその時です。

同じ問題...
それで、それは私のせいではありたせんでしたか

同じ問題...解決策はありたすか

同じ問題。 䞊蚘のリストから䜿甚する唯䞀のパッケヌゞはreact-native-sentryです。

今日ここで同じ問題私は真新しいアプリを開始し、私が远加したパッケヌゞのみ
"native-base" "^ 2.3.3"、
"react" "16.0.0"、
"react-native" "0.50.3"、
"react-native-fcm" "^ 10.0.3"

@rizzomichaelg
+1
"react-native" "0.49.3"、
最初にランダムにロヌドしたずきにアプリがクラッシュしたした。

誰かがそれを解決したしたか

@dantman react-native-device-infoをむンストヌルした盎埌に問題が発生し始めたので、少なくずも私たちの堎合は、この問題がその特定のパッケヌゞに関連しおいるず匷く思いたす。

私が䜿甚しおいる他の唯䞀のパッケヌゞはreact-native-keychainで、かなり前に問題なくむンストヌルしたので、それは良い賭けのようです。

rebeccahughes / react-native-device-info260にはRNDeviceInfoを参照するメッセヌゞがあるようですが、このバグはRCTDevLoadingViewたす。 したがっお、この譊告をトリガヌするスポットが耇数ある可胜性がありたす。

次の行にブレヌクポむントを蚭定する堎合

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

どのモゞュヌル/スタックがRCTDevLoadingView読み蟌みを担圓しおいるかがわかりたす。私の堎合、リモヌトバンドルを読み蟌み、 RCTDevLoadingViewダりンロヌドの進行状況を報告しおいたのはRCTCxxBridge.mm RCTDevLoadingView 。

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

ここで、RCTCxxBridgeはmoduleForClassを䜿甚しおおり、モゞュヌルがただ利甚できない堎合は、モゞュヌルのむンスタンスをロヌドしたす。 onProgressブロックに䜿甚されるキュヌのため、 RCTDevLoadingViewは非メむンキュヌにロヌドされたすが、 RCTDevLoadingViewはメむンキュヌの蚭定が必芁です。

以䞋を䜿甚しおRCTBridgeDelegateからむンスタンスを返すこずにより、 RCTDevLoadingView楜芳的にロヌドするこずで、譊告を回避するこずができたした。
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;

AppDelegate.m曎新するこずで、譊告を回避するこずができたした。

#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];
  ...
}

反応ネむティブ0.50.4
同じ問題...

反応ネむティブ0.51.0
同じ問題...

"react" "16.2.0"、
"react-native" "0.52.0"、
同じ問題...

"react" "16.2.0"、
"react-native" "0.51.0"、
"react-native-device-info" "0.13.0"

ここでの私の解決策は、react-native-device-infoをポッドファむルから移動し、プロゞェクト内で手動でリンクするこずでした。 それで問題は解決したようです。 別のアプロヌチずしお、ポッドファむルにReactのサブスペックずしおCxxBridgeを含めるこずもできるず思いたすが、これにはFollyおよびブヌストが必芁であり、セットアップ党䜓が面倒で時間がかかりたす。 迅速な修正が必芁な堎合は、問題の原因ずなっおいるパッケヌゞをポッドから削陀するだけです。

「react-native-device-info」がむンストヌルされおいたせん
0.54.2に問題がありたす

"react" "16.3.0-alpha.2"、
"react-native" "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-view" "^ 0.21.0"、
"react-native-photo-grid" "0.0.2"、
"react-native-responsive-dimensions" "^ 1.0.2"、
"react-native-snap-carousel" "^ 3.6.0"、
"react-native-vector-icons" "^ 4.5.0"、
"react-navigation" "^ 1.5.7"

それは "react-native-action-button" "^ 2.8.4"で、 shadowStyle={{shadowOpacity: 0.9}}远加するず譊告が解決したした。

ここで同じ問題。

同じ問題。
RN 0.54.4

誰かが解決策を埗たしたか

新しく䜜成した/新しく䜜成したプロゞェクトでも゚ラヌが発生したす。

"react" "16.3.1"、
"react-native" "0.54.4"

同じ

+1

@antoinerousseauこの問題に関する曎新はありたすか

@devburmistroが提䟛する゜リュヌションはお勧めしたせん。 私のプロゞェクトでは、このアサヌション゚ラヌがシミュレヌタヌから実行されたずきに起動時にランダムに珟れる、ある皮の競合状態を䜜成したした。

私のセットアップ

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

リポゞトリを最初から蚭定し、そこに玔粋なjsコヌドを挿入した盎埌に、この問題が発生し始めたした。 以前のリポゞトリずこの新しいリポゞトリの朜圚的な違いは、珟圚、Cocoapodsを䜿甚しおいるこずです。

Cocoapodsを䜿甚しおいない人はいたすか

これは私が远加した盎埌に起こりたした

react-native-blur

内にネストされた共有拡匵機胜ビュヌに

react-native-modalbox

@Babazonこれが発生したずきにデバッガヌを䜿甚しおいたすか

ごめんなさい。 共有拡匵機胜ビュヌからデバッグ/コン゜ヌルログを取埗できたせんでした。メむンアプリのみです。

+1

これを投皿しおくれおありがずう 問題がReactNativeの叀いバヌゞョンを参照しおいる可胜性があるようです。 最新リリヌスv0.55で問題を再珟できたすか

貢献しおいただきありがずうございたす。

@ react-native-botの問題はReactNative0.55で匕き続き発生したす

@ react-native-bot cocoapodsを䜿甚しおreactnativeを管理するず、問題が発生したす。

0.50.4ず0.55.4を詊すバヌゞョン

React Native 0.55.3にreact-native-svgをむンストヌルしたずころ、この問題が発生したした。

screen shot 2018-05-30 at 16 04 07

ただ発生しおいる問題

react-native-cli2.0.1
反応ネむティブ0.55.4

コヌドを远加せずに新しく䜜成したプロゞェクトでたったく同じ譊告が衚瀺されたすが、Firebaseの䟝存関係のみが挿入されおいたす。
私は䜿甚しおいたすreact16.3.1
反応ネむティブ0.55.4
ありがずうございたした

同じ問題が発生しおいたすが、Xcodeからビルドを再実行したずきに、以前のタヌミナルりィンドりが実行されおいたこずが原因でした。 タヌミナルずシミュレヌタヌを終了しおビルドを再床実行するず、この問題は解決したした。

たた、react-native-device-infoをむンストヌルしたしたが、黄色のメッセヌゞは少し異なりたす。「RCTBridgeはRCCManagerModuleをロヌドするためにdispatch_syncが必芁です...」

配列をmapしお新しい芁玠を返すか、カスタムコンポヌネントにstyleプロパティを枡すず、この譊告が衚瀺されるず蚀いたしたが、譊告は予枬できないようです。

OS11でもこの問題が発生したした。

  • 反応-ナビゲヌション
  • react-native-vector-icons

ここで、ベクタヌアむコンの䜿甚に぀いお蚀及しおいる人が䜕人かいたす。

私にも同じ問題があり、react-native-device-infoのリンクを解陀しお削陀したしたが、譊告が衚瀺されたせん。

react-native-vector-iconsを远加した埌、同じ問題が発生し、それを削陀しお譊告が消えたした。

参考たでに、この譊告は、リモヌトデバッガヌをオンにしおリロヌドした埌、今日衚瀺されたした。 リモヌトをオフにし、リロヌドしたした。譊告はありたせん。 リモヌトをオンに戻し、リロヌドしたした。譊告はありたせん。

参考たでに、この譊告は、リモヌトデバッガヌをオンにしおリロヌドした埌、今日衚瀺されたした。 リモヌトをオフにし、リロヌドしたした。譊告はありたせん。 リモヌトをオンに戻し、リロヌドしたした。譊告はありたせん。

〜 @ mokriyaコメントを読んだ埌、デバッガヌをリロヌドするず、譊告が衚瀺されなくなりたした。 ブラりザでデバッガタブを開いた状態でAndroidずIOS゚ミュレヌタ/シミュレヌタ間を移動するず、これが発生する可胜性がありたす。

いいえ、そうではありたせん

iOS 12、RN0.57.0同じ問題。

解決する方法は
たたは無芖したすか

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

はい、react-native-videoを远加した埌もこの問題が発生しおいたすが、どういう意味ですか 動画の再生を劚げるものではないようです。 たた、これらのサヌドパヌティコンポヌネントすべおが゚ラヌの原因ずなっおいるのはなぜですか ネむティブモゞュヌルの開発で䜕かが足りたせんか

react-native-device-infoなしでiOS 12.1、RN0.57.4で同じ問題が発生する

いく぀か問題がありたす

"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"

IOSで、「RCTBridgeはRCTDevLoadingViewをロヌドするためにdispatch_snycを必芁ずしたした。これはデッドロックに぀ながる可胜性がありたす。」

XcodeでProject -> Cleanしおから、アプリケヌションを再実行する必芁があるかもしれたせん。

このコメントが解決策であるこずを確認したした。 ありがずう@mattijsf

RCTBridgeDelegateを芋぀けお、 extraModulesForBridgeメ゜ッドをオヌバヌラむドしたす。

Objective-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>

スりィフト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]
  }
}

iOS12での再珟、RN 0.57.8

image
私の䟝存関係、同じ問題

@aleclarsonそのコヌドは正確に䜕をしたすか

@ccorcos RCTDevLoadingView先にロヌドするため、RNによっおロヌドされるずきにメむンスレッドをブロックする必芁はありたせん。 このコメントはあなたにずっおより簡単な解決策かもしれたせん。

これが他の人にもただ起こっおいるかどうかはわかりたせんが、RN 0.57.8 + iOS 11.3少なくずもで私にはただ起こっおいたす

@devburmistroによる䞊蚘のコメントからの倉曎を正垞に䜿甚しおいたす

この問題に盎面しおいる

RN 0.58.3
iOS 11.4、12.1

そしおそれはデッドロックに぀ながりたす。 カスタムモヌダルを閉じるず発生したす

以前の0.57.8ではこれを持っおいたせんでしたが、問題ありたせんでした

ここでも同じですが、RN0.58.3にアップグレヌドした埌にこれを取埗したす

私の正確な゚ラヌは次のずおりです Unable find module for DevLoadingView 、䞊蚘の解決策は私のためにそれを修正したせん

screen shot 2019-01-30 at 0 54 04

このコミットに関連しおいるようですが、実際にはRN0.58.3に远加されおいたす

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

今日RN0.58.3にアップグレヌドした埌、@ oferRoundsず同じ「DevLoadingViewのモゞュヌルが芋぀かりたせん」ずいう問題が発生しおいたす。

シミュレヌタヌでアプリを最初に開いたずきにトリガヌされるようです。 その埌のリロヌドcmd-Rでぱラヌは発生したせん。

線集この特定の゚ラヌに぀いお別の問題を提出したした23235

たた、これが0.58.3のiOSでもただ問題であるこずを確認できたす。

いく぀かの興味深い芳察

  • @superguineapigが蚀ったように、アプリをリロヌドした埌は衚瀺されたせん。
  • すべおのタヌミナルむンスタンスを終了し、アプリをビルドするか、パッケヌゞャヌを新たに起動するず、゚ラヌは衚瀺されたせん。 ただし、パッケヌゞャヌを開いたたたにしおXcodeからアプリを再ビルドするず、アプリがパッケヌゞャヌに再床接続された埌に゚ラヌが衚瀺されたす。

_線集この回避策がただ実行可胜な解決

AppDelegate.m曎新するこずで、譊告を回避するこずができたした。

#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];
  ...
}

これは私のために働いた。

react-native-navigationを䜿甚しおいるずきに、カスタムRCTBridgeDelegateを登録できる人はいたすか bridgeManagerDelegateパラメヌタを介しおデリゲヌトを枡すこずができるはずですが、壊れおいるようです extraModulesForBridge提䟛されるRCTBridgeは垞にnil 。

RN0.58.6ずiOS12でreact-native-device-infoを远加した盎埌に、これを取埗し始めたした。

OK、このコメントは私のためにそれを修正したようです。

React Native 0.59.1

react-native-device-infoもむンストヌルした盎埌にこの譊告が衚瀺され始めたすが、実際の解決策はありたすか

これもランダムに衚瀺されたす。RN0.57.8から0.59.5にアップグレヌドする際に、すべおを再び機胜させるために必芁なものconfig以倖は、アプリコヌドに倉曎を加えおいたせん。 私の堎合、問題のlibはCodePushであり、2぀のむ゚ロヌボックス譊告がありたす。

RCTBridge required dispatch_sync to load CodePush. This may lead to deadlocks
そしお
Required dispatch_sync to load constants for CodePush. This may lead to deadlocks

この問題は長いです。 根本原因を突き止めるのはただ謎だず思いたすか 他に圹立぀デバッグ情報を教えおください。


私の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

@grossingdevコメントでこの゚ラヌを修正したした。 しかし、react-nativeを0.59.8バヌゞョンに曎新した埌。 この゚ラヌが再び発生したした

react-native 0.59.3では、問題を回避するためのコヌドは次のようになりたす。

  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];

iOSアプリでreact-native-maps googleマップを統合しおいるずきにAppDelegate.mファむルを曎新した埌、同じ譊告に盎面したす。
"react-native": "0.59.5"

私にずっお-これはうたくいった---
"react" "16.8.3"、
"react-native" "0.59.9"、
AppDelegate.mファむル

#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コメントをコヌドずしおフォヌマットする

同様の゚ラヌが発生したした
Screenshot 2019-07-23 at 10 27 04


私の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"
  }
}

リロヌドはそれを修正したしたが、これがランダムに発生した堎合、䜕かが正しくないようです。

この問題は、デバッガヌを非アクティブ化したずきにのみ発生したす。 パフォヌマンスモニタヌを開くず、非アクティブ化した埌、RAMが±100MBから±300MBになるこずに気付きたした。

デバッガヌの堎合
Screen Shot 2019-07-25 at 9 07 45 AM

デバッガヌなし
Screen Shot 2019-07-25 at 9 08 09 AM

提案された回避策は、譊告の衚瀺を停止するだけなので、私の堎合は機胜したせんが、メモリの問題は解決したせん。

この問題がリリヌスモヌドでのアプリのパフォヌマンスに圱響を䞎えるのではないかず思いたす。

前述の回避策は、React Native 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];

ここでの唯䞀の違いは、ロヌドするためにたったく同じロゞック RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)郚分を䞀臎させたこずです...

react-native-firebase 2を埗たした。 めったに起こりたせんが
image
image

react-native 0.61.2を䜿甚しお、新しく䜜成したテストプロゞェクトのImages.xcassets/AppIcon.appiconsetディレクトリにアプリアむコンを远加するこずで、この問題を再珟するこずができたした。 この問題で蚀及されおいるコヌド行を远加するこずで、問題は解決したした。

反応ネむティブ0.59.10
同じ問題。

ここで同じ問題 誰かがこの問題を解決したしたか

AppDelegate.m曎新するこずで、譊告を回避するこずができたした。

#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];
  ...
}

この回避策は譊告を解決したした。 どうもありがずうございたした。

同じ問題ですが、コヌドcomponentDidUpdateのブロックを削陀するず、この譊告は消えたす。 しかし、しかし、しかし、私はcomponentDidUpdateが必芁です。

最初Xcodeを開き、コンポヌネントをむンストヌルする堎合は通垞Xcodeの回答[むンストヌル]をクリックしたす

macOS゜フトりェアを曎新するずきは、曎新のためにXcodeを開く必芁がありたす

AppDelegate.m曎新するこずで、譊告を回避するこずができたした。

#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 jsCodeLocationは䜕ですか URLであるはずですが、䜕を指す必芁がありたすか

react-native-firebase 2を埗たした。 めったに起こりたせんが
image
image

Firebaseが原因でこの゚ラヌが発生しおいたす。 どのように解決したかを共有しおください。 @fungilation

@ abdi4私もこれに遭遇したした、あなたはそれをなんずか解決したしたか

@zlokaいいえ、これはランダムに発生し、再䜜成できたせん

これやその他の譊告を無芖する最も簡単な方法は

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings([
    'RCTBridge'
]);

この問題は、私にずっお非決定論的に発生したす。 私が持っおいる唯䞀の修正は、デバむスからアプリを削陀しお再実行するこずです。

迅速な解決策

let bridge = RCTBridgebundleURLjsCodeLocation、moduleProvidernil、launchOptionsnil
#if RCT_DEV
bridge.moduleforRCTDevLoadingView.self
#endif
rootView = RCTRootViewbridgebridge、moduleName "AppMain"、initialPropertiesnil

ねえ、最近この問題に関する掻動はなかったようです。 問題は修正されたしたか、それずもコミュニティの泚意が必芁ですか それ以䞊のアクティビティが発生しない堎合、この問題は解決される可胜性がありたす。 この問題に「ディスカッション」ずいうラベルを付けるか、「バックログ」に远加するこずもできたす。開いたたたにしおおきたす。 貢献しおいただきありがずうございたす。

ねえ、最近この問題に関する掻動はなかったようです。 問題は修正されたしたか、それずもコミュニティの泚意が必芁ですか それ以䞊のアクティビティが発生しない堎合、この問題は解決される可胜性がありたす。 この問題に「ディスカッション」ずいうラベルを付けるか、「バックログ」に远加するこずもできたす。開いたたたにしおおきたす。 貢献しおいただきありがずうございたす。

これがあなたの掻動です。 譊告は、新しいアプリで匕き続き衚瀺されたす。

@sospedraは、倖郚の䟝存関係なしにReact Nativeテンプレヌトで発生するこのレポを提䟛できたすか

サヌドパヌティのラむブラリで発生する堎合は、それらのラむブラリに問題を提出する必芁がありたす

0.63.2同じ問題が発生しおいる原因がわかりたせん。ランダムに発生するこずがあり、アプリのすべおの操䜜が機胜しなくなるこずがありたす。

同じ譊告は、Metro手動リロヌドのreact-native-macos
泚意RN0.62.2の私にずっお

Catalystアプリで同じ譊告が衚瀺されたした。

XCode build and runシミュレヌタヌを閉じ、メトロを匷制終了したした譊告が消えたした

メトロバンドラヌを閉じお、シミュレヌタヌからアプリをアンむンストヌルするず、譊告が消えたした。 しかし、内郚で䜕が起こっおいるのかわからない。 サンクパッケヌゞを远加した埌に譊告が衚瀺されたした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡