"RNCSafeAreaView" was not found in the UIManager
Solution 1
I encountered the same error. In order to solve it make sure to install react-native-safe-area-context.
npm install react-native-safe-area-context
Then if you are using React Native 0.61.X make sure to do a pod install
.
It will link everything together.
If you are using React Native < 0.6 then you need to do the linking manually with react-native link react-native-safe-area-context
Solution 2
I was searched and found the next,
first, you need to clean the project
Second import modules at project
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')
include ':react-native-linear-gradient'
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
include ':react-native-safe-area-context'
project(':react-native-safe-area-context').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-safe-area-context/android')
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')
implementation project(':react-native-safe-area-context')
if (enableHermes) {
implementation project(':hermes-engine')
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
}
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("index.android.bundle")
.addPackage(MainReactPackage())
.addPackage(RNGestureHandlerPackage())
.addPackage(LinearGradientPackage())
.addPackage(SafeAreaContextPackage())
.addPackage(SDKCorePackage())
.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)
}
}
}
i will hope that it will be useful, also this link helped me
react-native-safe-area-context
Solution 3
Below worked for me :
- npm install react-native-safe-area-context
- react-native link react-native-safe-area-context
- List item
- inside android gradlew clean
- npm start
- npm run android
Solution 4
In case you are NOT using ReactRootView (integrating existing apps to react-native)...
You probably still need to add your package (packages which don't support autolinking yet, i.e., the new safe-area-view, for instance) to MainApplication.java
:
android/app/src/main/.../MainApplication.java
On top, where imports are:
import com.th3rdwave.safeareacontext.SafeAreaContextPackage;
Add the SafeAreaContextPackage class to your list of exported packages.
@Override
protected List<ReactPackage> getPackages() {
return Arrays.asList(
new MainReactPackage(),
/**other packages of yours**/
new SafeAreaContextPackage()
);
}
Solution 5
Worked for me for below version and on iOS
"react": "16.9.0",
"react-native": "0.61.5",
Step to resolve
-Stop the current running Metro Bundler
-install pod for ios
-try re-run the application
Hope this will help !
Alejandro Gonzalez
My name is Alejandro, i like to code at different technologies. At present i develop at mobile and web, although i developed in different technologies as example angular, java, .NET, oracle, SQL SERVER, as400, cobol, kony, javascript, azure
Updated on June 23, 2020Comments
-
Alejandro Gonzalez almost 4 years
I try to open a bundle, but when the android is running it shows the next message
2020-01-05 23:15:45.366 26210-26210/com.note.principal W/.note.principa: Accessing hidden field Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate; (light greylist, reflection) 2020-01-05 23:15:45.470 26210-26242/com.note.principal E/ReactNativeJS: Invariant Violation: requireNativeComponent: "RNCSafeAreaView" was not found in the UIManager.
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:
"RNCSafeAreaView" was not found in the UIManager.
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:
"RNCSafeAreaView" was not found in the UIManager.
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:
"RNCSafeAreaView" was not found in the UIManager.
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:
"RNCSafeAreaView" was not found in the 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 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
the 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
The package of project is
{ "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" } }
The project of 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 } }
This is the code of activity
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) } }
someone knows what is the solution?