我尝试打开一个包,但是当android运行时,它会显示下一条消息
2020-01-05 23:15:45.366 26210-26210 / com.note.principal W / .note.principa:访问隐藏字段Landroid / view / View;-> mAccessibilityDelegate:Landroid / view / View $ AccessibilityDelegate; (浅灰色列表,反射)2020-01-05 23:15:45.470 26210-26242 / com.note.principal E / ReactNativeJS:不变违规:requireNativeComponent:在UIManager中找不到“ RNCSafeAreaView”。 This error is located at: in RNCSafeAreaView in Unknown in Unknown in n in Unknown in Unknown in C in P in u in RCTView in RCTView in h 2020-01-05 23:15:45.494 26210-26242/com.note.principal E/ReactNativeJS: Invariant Violation: requireNativeComponent: 在UIManager中找不到“ RNCSafeAreaView”。 This error is located at: in P in u in RCTView in RCTView in h 2020-01-05 23:15:45.502 26210-26242/com.note.principal E/ReactNativeJS: Invariant Violation: requireNativeComponent: 在UIManager中找不到“ RNCSafeAreaView”。 This error is located at: in P in u in RCTView in RCTView in h 2020-01-05 23:15:45.794 26210-26244/com.note.principal E/unknown:ReactNative: Invariant Violation: requireNativeComponent: 在UIManager中找不到“ RNCSafeAreaView”。 This error is located at: in RNCSafeAreaView in Unknown in Unknown in n in Unknown in Unknown in C in P in u in RCTView in RCTView in h, stack: exports@175:1634 get@163:682 Al@89:70673 Ml@89:70108 Ul@89:67144 Ul@-1 Pl@89:65839 Pl@-1 <unknown>@89:25495 unstable_runWithPriority@168:3915 sn@89:25442 cn@89:25377 kl@89:64831 la@89:87813 render@89:90592 exports@342:541 run@334:1305 runApplication@334:2287 value@25:3685 <unknown>@25:841 value@25:2939 value@25:813 value@-1 2020-01-05 23:15:45.832 26210-26244/com.note.principal E/unknown:ReactNative: Invariant Violation: requireNativeComponent: 在UIManager中找不到“ RNCSafeAreaView”。 This error is located at: in P in u in RCTView in RCTView in h, stack: exports@175:1634 get@163:682 Al@89:70673 Ml@89:70108 Ul@89:67144 Ul@-1 Pl@89:65839 Pl@-1 <unknown>@89:25495 unstable_runWithPriority@168:3915 sn@89:25442 cn@89:25377 kl@89:64831 la@89:87813 render@89:90592 exports@342:541 run@334:1305 runApplication@334:2287 value@25:3685 <unknown>@25:841 value@25:2939 value@25:813 value@-1 2020-01-05 23:15:45.856 26210-26244/com.note.principal E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules Process: com.note.principal, PID: 26210 com.facebook.react.common.JavascriptException: Invariant Violation: requireNativeComponent: “RNCSafeAreaView” was not found in UIManager。 This error is located at: in P in u in RCTView in RCTView in h, stack: exports@175:1634 get@163:682 Al@89:70673 Ml@89:70108 Ul@89:67144 Ul@-1 Pl@89:65839 Pl@-1 <unknown>@89:25495 unstable_runWithPriority@168:3915 sn@89:25442 cn@89:25377 kl@89:64831 la@89:87813 render@89:90592 exports@342:541 run@334:1305 runApplication@334:2287 value@25:3685 <unknown>@25:841 value@25:2939 value@25:813 value@-1 at com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.java:71) at java.lang.reflect.Method.invoke(Native Method) at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:371) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:150) at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:26) at android.os.Looper.loop(Looper.java:193) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:225) at java.lang.Thread.run(Thread.java:764) 2020-01-05 23:15:45.862 26210-26244/com.note.principal I/Process: Sending signal. PID:26210 SIG:9
2020-01-05 23:15:45.366 26210-26210 / com.note.principal W / .note.principa:访问隐藏字段Landroid / view / View;-> mAccessibilityDelegate:Landroid / view / View $ AccessibilityDelegate; (浅灰色列表,反射)2020-01-05 23:15:45.470 26210-26242 / com.note.principal E / ReactNativeJS:不变违规:requireNativeComponent:在UIManager中找不到“ RNCSafeAreaView”。
This error is located at: in RNCSafeAreaView in Unknown in Unknown in n in Unknown in Unknown in C in P in u in RCTView in RCTView in h 2020-01-05 23:15:45.494 26210-26242/com.note.principal
E/ReactNativeJS: Invariant Violation: requireNativeComponent:
在UIManager中找不到“ RNCSafeAreaView”。
This error is located at: in P in u in RCTView in RCTView in h 2020-01-05 23:15:45.502 26210-26242/com.note.principal
This error is located at: in P in u in RCTView in RCTView in h 2020-01-05 23:15:45.794 26210-26244/com.note.principal
E/unknown:ReactNative: Invariant Violation: requireNativeComponent:
This error is located at: in RNCSafeAreaView in Unknown in Unknown in n in Unknown in Unknown in C in P in u in RCTView in RCTView in h, stack: exports@175:1634 get@163:682 Al@89:70673 Ml@89:70108 Ul@89:67144 Ul@-1 Pl@89:65839 Pl@-1 <unknown>@89:25495 unstable_runWithPriority@168:3915 sn@89:25442 cn@89:25377 kl@89:64831 la@89:87813 render@89:90592 exports@342:541 run@334:1305 runApplication@334:2287 value@25:3685 <unknown>@25:841 value@25:2939 value@25:813 value@-1 2020-01-05 23:15:45.832 26210-26244/com.note.principal
This error is located at: in P in u in RCTView in RCTView in h, stack: exports@175:1634 get@163:682 Al@89:70673 Ml@89:70108 Ul@89:67144 Ul@-1 Pl@89:65839 Pl@-1 <unknown>@89:25495 unstable_runWithPriority@168:3915 sn@89:25442 cn@89:25377 kl@89:64831 la@89:87813 render@89:90592 exports@342:541 run@334:1305 runApplication@334:2287 value@25:3685 <unknown>@25:841 value@25:2939 value@25:813 value@-1 2020-01-05 23:15:45.856 26210-26244/com.note.principal
E/AndroidRuntime: FATAL EXCEPTION: mqt_native_modules Process: com.note.principal, PID: 26210 com.facebook.react.common.JavascriptException: Invariant Violation: requireNativeComponent: “RNCSafeAreaView” was not found in
UIManager。
This error is located at: in P in u in RCTView in RCTView in h, stack: exports@175:1634 get@163:682 Al@89:70673 Ml@89:70108 Ul@89:67144 Ul@-1 Pl@89:65839 Pl@-1 <unknown>@89:25495 unstable_runWithPriority@168:3915 sn@89:25442 cn@89:25377 kl@89:64831 la@89:87813 render@89:90592 exports@342:541 run@334:1305 runApplication@334:2287 value@25:3685 <unknown>@25:841 value@25:2939 value@25:813 value@-1 at
com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.java:71) at java.lang.reflect.Method.invoke(Native Method) at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:371) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:150) at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:26) at android.os.Looper.loop(Looper.java:193) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:225) at java.lang.Thread.run(Thread.java:764) 2020-01-05 23:15:45.862 26210-26244/com.note.principal I/Process: Sending signal.
PID:26210 SIG:9
项目包是
{ "name": "Notes", "version": "0.0.1", "private": true, "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", "bundle_android": "react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./bundles/android/index.android.bundle", "bundle_ios": "react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ./bundles/ios/main.jsbundle", "test": "jest", "lint": "eslint ." }, "dependencies": { "@react-native-community/masked-view": "^0.1.5", "prop-types": "^15.7.2", "react": "16.9.0", "react-native": "0.61.5", "react-native-gesture-handler": "^1.5.3", "react-native-linear-gradient": "^2.5.6", "react-native-safe-area-context": "^0.6.2", "react-navigation": "^4.0.10", "react-navigation-stack": "^2.0.8" }, "devDependencies": { "@babel/core": "^7.7.7", "@babel/runtime": "^7.7.7", "@react-native-community/eslint-config": "^0.0.6", "babel-jest": "^24.9.0", "eslint": "^6.8.0", "jest": "^24.9.0", "metro-react-native-babel-preset": "^0.57.0", "react-test-renderer": "16.9.0" }, "jest": { "preset": "react-native" } }
Gradle项目
include ':app' rootProject.name='Notes' include ':hermes-engine' project(':hermes-engine').projectDir = new File(rootProject.projectDir, '../node_modules/hermes-engine/android/') include ':react-native-gesture-handler' project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android') include ':react-native-linear-gradient' project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android') // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.3.50' repositories { google() jcenter() mavenLocal() } dependencies { classpath 'com.android.tools.build:gradle:3.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() mavenLocal() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") } } } task clean(type: Delete) { delete rootProject.buildDir } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { applicationId "" minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } project.ext.react = [ enableHermes: false, ] def jscFlavor = 'org.webkit:android-jsc:+' def enableHermes = project.ext.react.get("enableHermes", false) dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation "com.facebook.react:react-native:+" implementation 'com.android.support:support-annotations:27.1.1' implementation project(':react-native-gesture-handler') implementation project(':react-native-linear-gradient') if (enableHermes) { implementation project(':hermes-engine') debugImplementation files(hermesPath + "hermes-debug.aar") releaseImplementation files(hermesPath + "hermes-release.aar") } else { implementation jscFlavor } }
这是活动代码
package com.note import android.content.Intent import android.net.Uri import android.os.Build import android.os.Bundle import android.provider.Settings import android.util.Log import androidx.appcompat.app.AppCompatActivity import com.facebook.react.ReactInstanceManager import com.facebook.react.ReactRootView import com.facebook.react.common.LifecycleState import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler import com.facebook.react.shell.MainReactPackage import com.facebook.soloader.SoLoader import com.swmansion.gesturehandler.react.RNGestureHandlerPackage import com.BV.LinearGradient.LinearGradientPackage class ReactActivity : AppCompatActivity(), DefaultHardwareBackBtnHandler { private val OVERLAY_PERMISSION_REQ_CODE = 1 private lateinit var mReactRootView: ReactRootView private lateinit var mReactInstanceManager: ReactInstanceManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) SoLoader.init(this, false) mReactRootView = ReactRootView(this) mReactInstanceManager = ReactInstanceManager.builder() .setApplication(application) .setCurrentActivity(this) .setApplication(application) .setBundleAssetName("aaaaaa.android.bundle") .addPackage(MainReactPackage()) .addPackage(RNGestureHandlerPackage()) .addPackage(LinearGradientPackage()) .setInitialLifecycleState(LifecycleState.RESUMED) .build() // The string here (e.g. "MyReactNativeApp") has to match // the string in AppRegistry.registerComponent() in index.js mReactRootView.startReactApplication(mReactInstanceManager, "Notes", null) setContentView(mReactRootView) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!Settings.canDrawOverlays(this)) { val intent = Intent( Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:$packageName") ) startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE) } } } override fun invokeDefaultOnBackPressed() { super.onBackPressed() } override fun onBackPressed() { if (mReactInstanceManager != null) { mReactInstanceManager.onBackPressed() } else { super.onBackPressed() } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == OVERLAY_PERMISSION_REQ_CODE) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!Settings.canDrawOverlays(this)) { // SYSTEM_ALERT_WINDOW permission not granted } } } mReactInstanceManager?.onActivityResult(this,requestCode, resultCode, data) } }
有人知道解决方案吗?
我遇到了同样的错误。为了解决该问题,请确保安装react-native-safe-area-context。
npm install react-native-safe-area-context
然后,如果您使用的是React Native 0.61.X,请确保执行pod install。它将所有内容链接在一起。
pod install
如果您使用的是React Native <0.6,则需要使用 react-native link react-native-safe-area- context
react-native link react-native-safe-area- context