React-native: RCTBridge membutuhkan dispatch_sync untuk memuat RCTDevLoadingView. Ini dapat menyebabkan kebuntuan

Dibuat pada 15 Okt 2017  ·  106Komentar  ·  Sumber: facebook/react-native

Saya secara acak mendapatkan peringatan ini saat aplikasi iOS dimulai (yaitu tidak selalu).

Apakah ini laporan bug?

Iya

Sudahkah Anda membaca Panduan Berkontribusi ?

Iya

Lingkungan Hidup

OS: macOS Sierra 10.12.6
Node: 6.10.2
Benang: 1.0.2
npm: 5.4.2
Penjaga: 4.7.0
Xcode: Xcode 9.0 Versi 9A235
Android Studio: 2.1 AI-143.2915827

Paket: (ingin => dipasang)
bereaksi: ^ 16.0.0 => 16.0.0
react-native: ^ 0.49.3 => 0.49.3

Langkah-langkah untuk Mereproduksi

  1. Mulai aplikasinya

    Perilaku yang Diharapkan

Tanpa peringatan

Perilaku Sebenarnya

capture d ecran 2017-10-15 12 49 45

Demo yang Dapat Direproduksi

T / A

Beberapa paket yang saya gunakan

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

Komentar yang paling membantu

Harap berhenti menambahkan +1 s, ini menghasilkan pemberitahuan email yang tidak menambahkan informasi apa pun. Gunakan fitur "tambahkan reaksi" sebagai gantinya.

Semua 106 komentar

Sama disini!

mendapat masalah kuning ini untuk iOS

Saya melihat ini juga. Mungkin terkait dengan # 11196.
Saya yakin inilah yang juga menyebabkan aplikasi macet saat mencoba memuat ulang; itu gagal dengan
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method must not be called before the JS thread is created'

Saya juga mendapatkan kesalahan ini dari waktu ke waktu di iOS 11 dan saya tidak tahu cara men-debug ini untuk memberikan informasi lebih lanjut. Stacktrace tidak membantu sama sekali dalam kasus ini.

+1

+1

Harap berhenti menambahkan +1 s, ini menghasilkan pemberitahuan email yang tidak menambahkan informasi apa pun. Gunakan fitur "tambahkan reaksi" sebagai gantinya.

Masalah yang sama. Berikut paket yang saya gunakan:

  • 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

Mengingat persimpangan dengan daftar @antoinerousseau , kemungkinan lokasi untuk bug ini adalah:

  • Bug di react-native itu sendiri
  • Bug di react-native-device-info
  • Beberapa bug di perpustakaan selain react-native-device-info

Saya baru saja menambahkan react-native-device-info, dan pindah dari rn 0,49 ke 0,50. dan sekarang saya menemukan bug ini. Tidak tahu apakah itu masalahnya, tetapi saat saya mendapatkan ini.

Masalah yang sama ...
Jadi itu bukan salahku?

Masalah yang sama ... Apakah Anda punya solusi?

Masalah yang sama. Satu-satunya paket dari daftar di atas yang kami gunakan adalah react-native-sentry .

Masalah yang sama di sini hari ini saya telah memulai aplikasi baru dan hanya paket yang telah saya tambahkan
"native-base": "^ 2.3.3",
"react": "16.0.0",
"react-native": "0.50.3",
"react-native-fcm": "^ 10.0.3"

@rizzichael
+1
"react-native": "0.49.3",
aplikasi macet saat pertama kali memuat secara acak.

ada yang menyelesaikannya ??

@dantman Saya mulai melihat masalah segera setelah menginstal react-native-device-info, jadi saya sangat curiga masalah tersebut terkait, setidaknya dalam kasus kami, dengan paket khusus itu.

Satu-satunya paket lain yang saya gunakan react-native-keychain, yang saya instal beberapa waktu yang lalu tanpa masalah apa pun, jadi sepertinya taruhan yang bagus.

rebeccahughes / react-native-device-info # 260 sepertinya memiliki pesan yang merujuk ke RNDeviceInfo sedangkan bug ini merujuk ke RCTDevLoadingView . Jadi mungkin ada lebih dari satu titik yang memicu peringatan ini.

Jika Anda akan meletakkan breakpoint pada baris berikut:

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

Anda dapat melihat modul / tumpukan mana yang bertanggung jawab untuk memuat RCTDevLoadingView dalam kasus saya RCTCxxBridge.mm yang memuat bundel jarak jauh dan melaporkan kemajuan unduhan pada RCTDevLoadingView :

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

Di sini RCTCxxBridge menggunakan moduleForClass yang akan memuat instance modul jika belum tersedia. Karena antrian yang digunakan untuk onProgress blok RCTDevLoadingView akan dimuat pada antrian non-utama, sedangkan RCTDevLoadingView membutuhkan pengaturan antrian utama.

Saya dapat mengatasi peringatan tersebut dengan secara optimis memuat RCTDevLoadingView dengan mengembalikan sebuah instance dari RCTBridgeDelegate menggunakan:
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;

Saya dapat mengatasi peringatan tersebut dengan memperbarui 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: 0,50,4
masalah yang sama ...

react-native: 0,51.0
masalah yang sama ...

"bereaksi": "16.2.0",
"react-native": "0.52.0",
masalah yang sama ...

"bereaksi": "16.2.0",
"react-native": "0.51.0",
"react-native-device-info": "0.13.0"

Solusi saya di sini adalah memindahkan react-native-device-info dari file pod dan menautkannya secara manual dalam proyek. Itu sepertinya menyelesaikan masalah. Saya pikir pendekatan lain dapat memasukkan CxxBridge sebagai subspec untuk React dalam file pod, tetapi itu membutuhkan Folly (dan juga dorongan), dan seluruh pengaturan itu rumit / membutuhkan waktu lama. Jika Anda menginginkan perbaikan cepat, cukup hapus paket yang menyebabkan masalah dari pod.

Tidak ada "react-native-device-info" yang terpasang:
Masalah ada di 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-dimensional": "^ 1.0.2",
"react-native-snap-carousel": "^ 3.6.0",
"react-native-vector-icons": "^ 4.5.0",
"react-navigation": "^ 1.5.7"

Itu dengan "react-native-action-button": "^ 2.8.4", Menambahkan shadowStyle={{shadowOpacity: 0.9}} memecahkan peringatan ..

Masalah yang sama di sini.

Masalah yang sama.
RN 0,54,4

Ada yang punya solusinya?

Kesalahan datang bahkan untuk proyek yang baru / baru dibuat.

"bereaksi": "16.3.1",
"react-native": "0.54.4"

sama

+1

@antoinerousseau ada pembaruan tentang masalah ini?

Saya tidak akan merekomendasikan solusi yang diberikan oleh @devburmistro. Untuk proyek saya, penyertaannya menciptakan semacam kondisi balapan di mana kesalahan pernyataan ini akan terwujud secara acak saat memulai saat menjalankannya dari simulator.

Pengaturan saya:

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

Saya mulai mengalami masalah ini sekarang setelah menyiapkan repo saya dari awal dan memasukkan kode js murni kembali ke sana. Perbedaan potensial antara repo sebelumnya dan baru ini adalah sekarang saya menggunakan Cocoapods.

Ada yang tidak menggunakan Cocoapods?

Ini terjadi tepat setelah saya menambahkan

react-native-blur

ke tampilan Berbagi Ekstensi, bersarang di dalamnya

react-native-modalbox

@Babazon, apakah Anda menggunakan debugger saat ini terjadi?

Maaf. Saya tidak dapat men-debug / log konsol dari tampilan Ekstensi Berbagi, hanya aplikasi utama.

+1

Terima kasih telah memposting ini! Sepertinya masalah Anda mungkin mengacu pada versi React Native yang lebih lama. Dapatkah Anda mereproduksi masalah tersebut pada rilis terbaru, v0.55 ?

Terima kasih atas kontribusi Anda.

Masalah @ react-native-bot masih terjadi di React Native 0.55

@ react-native-bot Saat menggunakan cocoapods untuk mengelola react native, masalah akan muncul.

versi yang saya coba 0.50.4 dan 0.55.4

Baru saja menginstal react-native-svg di React Native 0.55.3 dan masalah ini muncul.

screen shot 2018-05-30 at 16 04 07

masalah masih terjadi pada:

react-native-cli: 2.0.1
react-native: 0,55,4

Saya mendapat peringatan yang sama persis dengan proyek baru yang dibuat tanpa kode apa pun yang ditambahkan tetapi hanya dependensi Firebase yang dimasukkan.
Saya menggunakan: react: 16.3.1
react-native: 0,55,4
Terima kasih

Saya mengalami masalah yang sama tetapi, bagi saya itu karena jendela terminal sebelumnya berjalan ketika saya menjalankan kembali build dari Xcode. Saya baru saja keluar dari terminal dan simulator dan menjalankan build lagi, masalah ini teratasi.

Saya juga telah menginstal react-native-device-info, tetapi pesan kuningnya sedikit berbeda untuk saya: 'RCTBridge memerlukan dispatch_sync untuk memuat RCCManagerModule ...'

Tadinya saya akan mengatakan saya mendapatkan peringatan ini ketika saya map atas array untuk mengembalikan elemen baru atau meneruskan style prop ke komponen khusus, tetapi sekarang peringatan itu tampaknya tidak dapat diprediksi.

Mengalami masalah ini di OS11 juga.

  • navigasi-reaksi
  • react-native-vector-icons

Saya melihat beberapa orang di sini yang telah menyebutkan menggunakan ikon-vektor.

Saya juga memiliki masalah yang sama untuk saya, saya telah memutuskan tautan dan menghapus info-react-native-device-info dan sekarang peringatan itu tidak muncul.

Saya memiliki masalah yang sama setelah menambahkan react-native-vector-icons, menghapusnya dan peringatan hilang.

FYI, peringatan ini muncul hari ini setelah reload dengan remote debugger aktif. Mematikan remote, melakukan reload, tidak ada peringatan. Menghidupkan kembali remote, melakukan reload, tanpa peringatan.

FYI, peringatan ini muncul hari ini setelah reload dengan remote debugger aktif. Mematikan remote, melakukan reload, tidak ada peringatan. Menghidupkan kembali remote, melakukan reload, tanpa peringatan.

~ Setelah membaca komentar @mokriya, saya memuat ulang debugger dan peringatannya berhenti. Ada kemungkinan bahwa perpindahan antara emulator / simulator Android dan iOS dengan tab debugger terbuka di browser menyebabkan hal ini. ~

Bukan bukan itu

iOS 12, RN 0.57.0 masalah yang sama.

bagaimana mengatasinya?
atau abaikan?

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

Ya, saya mengalami masalah ini juga setelah menambahkan react-native-video, tetapi apa artinya? Tampaknya tidak mencegah video diputar. Juga mengapa semua komponen pihak ketiga ini menyebabkan kesalahan? Apakah kami melewatkan sesuatu dalam mengembangkan modul asli kami?

Mendapatkan masalah yang sama di iOS 12.1, RN 0.57.4 tanpa react-native-device-info

Saya punya beberapa masalah

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

Di IOS, mendapatkan "RCTBridge membutuhkan dispatch_snyc untuk memuat RCTDevLoadingView. Hal ini dapat menyebabkan kebuntuan."

Mungkin Anda harus Project -> Clean di Xcode Anda, lalu jalankan kembali aplikasi Anda.

Saya telah mengkonfirmasi bahwa komentar ini adalah solusinya. Terima kasih @mattijsf!

Temukan RCTBridgeDelegate dan ganti metode 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>

Cepat 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 di iOS12, RN 0.57.8

image
ketergantungan saya, masalah yang sama

@aleclarson apa sebenarnya yang dilakukan kode itu?

@ccorcos Memuat RCTDevLoadingView sebelumnya, jadi tidak perlu memblokir utas utama saat dimuat oleh RN. Komentar ini mungkin bisa menjadi solusi yang lebih mudah untuk Anda.

Tidak yakin apakah ini masih terjadi untuk orang lain tetapi masih terjadi untuk saya dengan RN 0.57.8 + iOS 11.3 (setidaknya)

Saya berhasil menggunakan perubahan dari komentar di atas oleh @devburmistro

Menghadapi masalah ini

RN 0.58.3
iOS 11.4, 12.1

dan itu menyebabkan kebuntuan. Itu terjadi pada saya ketika saya menutup modal kustom

Saya belum pernah mengalami ini di 0,57,8 sebelumnya yang baik-baik saja

Sama di sini, dapatkan ini setelah meningkatkan ke RN 0.58.3

kesalahan persis saya adalah: Unable find module for DevLoadingView , solusi di atas tidak memperbaikinya untuk saya

screen shot 2019-01-30 at 0 54 04

Tampaknya terkait dengan commit ini, yang sebenarnya ditambahkan pada RN 0.58.3

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

Saya mengalami masalah "Tidak dapat menemukan modul untuk DevLoadingView" yang sama seperti @oferRounds setelah meningkatkan ke RN 0.58.3 hari ini.

Tampaknya terpicu saat aplikasi pertama kali dibuka di simulator. Reload berikutnya (cmd-R) tidak menampilkan kesalahan.

EDIT: mengajukan masalah terpisah untuk kesalahan khusus ini: # 23235

Saya juga dapat mengonfirmasi bahwa ini masih menjadi masalah di iOS dengan 0.58.3.

Beberapa pengamatan menarik:

  • Seperti yang dikatakan @superguineapig , itu tidak muncul setelah Anda memuat ulang aplikasi.
  • Jika Anda keluar dari semua instance terminal, dan membangun aplikasi / memulai pengemas baru, _not_ akan menampilkan kesalahan. Namun, jika Anda kemudian membiarkan pengemas tetap terbuka dan membuat ulang aplikasi dari Xcode, kesalahan akan muncul setelah aplikasi terhubung ke pengemas lagi.

_Edit: Saya dapat mengonfirmasi bahwa solusi ini masih merupakan solusi yang layak._

Saya dapat mengatasi peringatan tersebut dengan memperbarui 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];
  ...
}

Ini berhasil untuk saya.

Adakah yang bisa mendaftarkan RCTBridgeDelegate kustom saat menggunakan react-native-navigation? Anda seharusnya dapat mengirimkan delegasi melalui parameter bridgeManagerDelegate , tetapi tampaknya rusak (RCTBridge yang disediakan untuk extraModulesForBridge selalu nil ).

Saya baru mulai mendapatkan ini segera setelah menambahkan react-native-device-info pada RN 0.58.6 dan iOS 12.

Oke, komentar ini sepertinya telah memperbaikinya untuk saya.

React Native 0.59.1

Saya mulai melihat peringatan ini tepat setelah menginstal react-native-device-info juga, apakah ada solusi nyata?

Saya juga melihat ini secara acak, dan saya tidak membuat perubahan dalam kode aplikasi saya selain yang diperlukan (config) untuk membuat semuanya berfungsi kembali, dalam meningkatkan dari RN 0,57,8 menjadi 0,59,5. Dalam kasus saya, lib yang dimaksud adalah CodePush, dengan 2 peringatan yellowbox:

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

Masalah ini panjang. Saya berasumsi bahwa memaku akar masalahnya masih merupakan misteri? Beri tahu saya info debug lain yang bisa saya berikan untuk membantu.


Package.json saya:

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

saya memperbaiki kesalahan ini dengan komentar @grossingdev . tetapi setelah memperbarui react-native ke versi 0.59.8. kesalahan ini telah datang lagi

Di react-native 0.59.3, berikut adalah tampilan kode untuk mengatasi masalah tersebut:

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

Menghadapi peringatan yang sama setelah memperbarui file AppDelegate.m sambil Mengintegrasikan peta google react-native-maps di ios App.
"react-native": "0.59.5"

Bagi saya - ini berhasil ---
"bereaksi": "16.8.3",
"react-native": "0.59.9",
AppDelegate.m file

#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 format komentar Anda sebagai kode

Saya baru saja mendapat kesalahan serupa:
Screenshot 2019-07-23 at 10 27 04


package.json saya:

{
  "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 memperbaikinya, tetapi sepertinya ada sesuatu yang tidak beres jika ini terjadi secara acak.

Masalah ini hanya terjadi pada saya ketika saya menonaktifkan debugger. Saat membuka Perf Monitor, saya perhatikan bahwa RAM berubah dari ± 100MB menjadi ± 300MB setelah dinonaktifkan.

Dengan debugger:
Screen Shot 2019-07-25 at 9 07 45 AM

Tanpa debugger:
Screen Shot 2019-07-25 at 9 08 09 AM

Solusi yang diusulkan tidak berfungsi dalam kasus saya, karena hanya berhenti menampilkan peringatan, tetapi tidak menyelesaikan masalah dengan memori.

Saya ingin tahu apakah masalah ini akan memengaruhi kinerja aplikasi dalam mode rilis.

Solusi yang disebutkan di atas memecahkan masalah ini untuk saya juga, di 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];

Satu-satunya perbedaan di sini adalah saya mencocokkan logika yang sama persis untuk memuatnya (bagian RCT_DEV && __has_include(<React/RCTDevLoadingView.h>) ) ...

Baru saja mendapat 2 dengan react-native-firebase . Jarang terjadi tetapi:
image
image

Saya dapat membuat ulang masalah ini dengan menambahkan ikon aplikasi ke direktori Images.xcassets/AppIcon.appiconset dari proyek uji saya yang baru dibuat menggunakan react-native 0.61.2. Menambahkan baris kode yang disebutkan dalam masalah ini memecahkan masalah bagi saya.

react-native 0.59.10
masalah yang sama.

masalah yang sama di sini !! ada yang memecahkan masalah ini?

Saya dapat mengatasi peringatan tersebut dengan memperbarui 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];
  ...
}

solusi ini menyelesaikan peringatan. Terima kasih banyak.

Masalah yang sama, tetapi jika saya menghapus blok kode componentDidUpdate, peringatan ini menghilang. Tapi tapi tapi aku butuh componentDidUpdate.

pertama: buka Xcode, jawab normal Xcode jika ingin menginstal komponen: klik install

Saat Anda memperbarui perangkat lunak macOS, Anda harus membuka Xcode untuk pembaruan

Saya dapat mengatasi peringatan tersebut dengan memperbarui 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 apa itu jsCodeLocation please? Saya tahu itu seharusnya menjadi URL tetapi harus mengarah ke apa?

Baru saja mendapat 2 dengan react-native-firebase . Jarang terjadi tetapi:
image
image

Firebase menyebabkan kesalahan ini bagi saya. Pikiran berbagi bagaimana Anda menyelesaikannya? @bayu_joo

@ abdi4 Saya baru saja mengalami ini juga, apakah Anda berhasil menyelesaikannya?

@zloka tidak ini terjadi secara acak dan saya tidak dapat membuatnya kembali

Cara termudah untuk mengabaikan peringatan ini atau peringatan lainnya adalah

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings([
    'RCTBridge'
]);

Masalah ini muncul untuk saya secara non-deterministik. Satu-satunya perbaikan yang saya miliki setiap kali itu terjadi, adalah menghapus aplikasi dari perangkat saya dan menjalankan kembali.

Solusi Cepat:

biarkan bridge = RCTBridge (bundleURL: jsCodeLocation, moduleProvider: nil, launchOptions: nil)
#jika RCT_DEV
bridge? .module (untuk: RCTDevLoadingView.self)
#berakhir jika
biarkan rootView = RCTRootView (bridge: bridge !, moduleName: "AppMain", initialProperties: nil)

Halo, sepertinya tidak ada aktivitas terkait masalah ini akhir-akhir ini. Apakah masalah sudah diperbaiki atau masih membutuhkan perhatian masyarakat? Masalah ini mungkin ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Diskusi" atau menambahkannya ke "Backlog" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Halo, sepertinya tidak ada aktivitas terkait masalah ini akhir-akhir ini. Apakah masalah sudah diperbaiki atau masih membutuhkan perhatian masyarakat? Masalah ini mungkin ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Anda juga dapat memberi label masalah ini sebagai "Diskusi" atau menambahkannya ke "Backlog" dan saya akan membiarkannya terbuka. Terima kasih atas kontribusi Anda.

Inilah aktivitas Anda. Peringatan terus muncul di aplikasi baru yang segar.

@sospedra dapatkah Anda memberikan repo ini terjadi dengan template React Native tanpa ketergantungan eksternal?

Untuk kasus di mana hal itu terjadi dengan pustaka pihak ketiga, masalah harus diajukan dengan pustaka tersebut

masalah yang sama pada 0.63.2 Saya tidak yakin apa penyebabnya, ini terjadi secara acak terkadang semua interaksi aplikasi tidak lagi berfungsi.

Peringatan yang sama hanya datang dengan react-native-macos di Metro (manual) reload , bukan pada update perubahan kode, dan tidak dengan ios, android, atau windows.
NB: untuk saya dengan RN 0.62.2

Mendapat peringatan yang sama dengan Aplikasi Catalyst.

Saya menutup simulator, mematikan metro, di XCode build and run Peringatan menghilang!

Menutup bundler metro dan menghapus aplikasi dari simulator menghilangkan peringatan. Tapi tidak yakin apa yang terjadi di balik terpal. peringatan muncul setelah menambahkan paket thunk.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat