UIManager में "RNCSafeAreaView" नहीं मिला


10

मैं एक बंडल खोलने की कोशिश करता हूं, लेकिन जब एंड्रॉइड चल रहा होता है तो वह अगला संदेश दिखाता है

2020-01-05 23: 15: 45.366 26210-26210 / com.note.principal W / .note.principa: एक्सेस करने के लिए छिपे हुए क्षेत्र Landroid / view / View; -> mAccessibilityDelegate: Landy देखें / देखें / $ AccessibilityDelegate देखें (प्रकाश गायत्रीकार, परावर्तन) २०२०-०१-०५ २३: १५: ४५.४210० २६२०-२२२४२२

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.

पीआईडी: 26210 एसआईजी: 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"
  }
}

ग्रेडेल की परियोजना

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)
    }
}

किसी को पता है कि समाधान क्या है?

जवाबों:


9

मुझे उसी त्रुटि का सामना करना पड़ा। इसे हल करने के लिए प्रतिक्रिया-मूल-सुरक्षित-क्षेत्र-संदर्भ स्थापित करना सुनिश्चित करें।

npm install react-native-safe-area-context

फिर यदि आप React Native 0.61.X का उपयोग कर रहे हैं तो सुनिश्चित करें कि ए pod install। यह सब कुछ एक साथ जोड़ देगा।

यदि आप रिएक्ट नेटिव <0.6 का उपयोग कर रहे हैं तो आपको मैन्युअल रूप से लिंकिंग करने की आवश्यकता है react-native link react-native-safe-area-context


1
मुझे पॉड इंस्टॉल स्टेप याद आ रहा था। धन्यवाद।
लॉफोटॉग

2

मुझे खोजा गया और अगला मिल गया,

सबसे पहले, आपको परियोजना को साफ करने की आवश्यकता है

परियोजना में दूसरा आयात मॉड्यूल

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)
            }
        }
    }

मुझे आशा है कि यह उपयोगी होगा, इस लिंक ने भी मेरी मदद की

प्रतिक्रिया देशी-सुरक्षित क्षेत्र-प्रसंग


1

नीचे के संस्करण के लिए और आईओएस पर मेरे लिए काम किया

"react": "16.9.0",
 "react-native": "0.61.5",

हल करने के लिए कदम

वर्तमान में चल रहे मेट्रो बुंडलर को रोकें

-आईओएस के लिए पॉड की स्थापना करें

-आवेदन को फिर से चलाएं

आशा है कि यह मदद करेगा!


एंड्रॉइड, आईओएस नहीं
JIMJI1005

0

मामले में आप ReactRootView (प्रतिक्रिया-मूल के लिए मौजूदा एप्लिकेशन को एकीकृत) का उपयोग नहीं कर रहे हैं ...

आपको शायद अभी भी अपने पैकेज को जोड़ना होगा (ऐसे पैकेज जो अभी तक ऑटोलिंकिंग का समर्थन नहीं करते हैं, अर्थात, नया सुरक्षित-क्षेत्र-दृश्य , इसके लिए) MainApplication.java:

android/app/src/main/.../MainApplication.java

शीर्ष पर, जहां आयात हैं:

import com.th3rdwave.safeareacontext.SafeAreaContextPackage;

अपने निर्यात किए गए पैकेजों की सूची में SafeAreaContextPackage क्लास जोड़ें।

@Override
protected List<ReactPackage> getPackages() {
    return Arrays.asList(
            new MainReactPackage(),
            /**other packages of yours**/
            new SafeAreaContextPackage()
    );
}

लेकिन बंडल प्रतिक्रिया में देशी है, गतिविधि में यह ओवरराइड नहीं है
एलेजैंड्रो गोंजालेज

वास्तव में, गतिविधि नहीं है। आवेदन करता है: MainApplication (.java) | (.kt)
14

हो सकता है, मेरे मामले में, मुझे लाइब्रेरी को जोड़ने की आवश्यकता है
एलेजांद्रो गोंजालेज

यकीन है, मुझे लगता है कि आप एक प्रतिक्रिया-मूल परियोजना के साथ मौजूदा देशी एंड्रॉइड ऐप को एकीकृत कर रहे हैं, है ना? इस मामले में, आप आधिकारिक डॉक्स का अनुसरण कर रहे हैं, जो हमें सिखाता है कि रिएक्ट एप्लिकेशन के बिना गतिविधियों पर प्रतिक्रिया-मूल को कैसे लागू किया जाए। यह अनुमान लगाया जा सकता है क्योंकि मैं देख सकता हूं कि आप मैन्युअल रूप से घोषणा कर रहे हैं mReactInstanceManagerजो बहुत ही रिएक्ट एप्लिकेशन के समान होगा।
15

यह विचार है, क्योंकि प्रतिक्रिया की परियोजना देशी केवल बंडल है, फिर मेरे पास एंड्रॉइड और आईओएस में एक आवेदन है। वे कंटेनर हैं, लेकिन कोड और फ़ंक्शन प्रतिक्रिया मूल में है
एलेजांद्रो गोंजालेज

0

नीचे मेरे लिए काम किया:

  1. npm प्रतिक्रिया-मूल-सुरक्षित-क्षेत्र-संदर्भ स्थापित करें
  2. प्रतिक्रिया-मूल लिंक प्रतिक्रिया-मूल-सुरक्षित-क्षेत्र-संदर्भ
  3. सामग्री सूचीबद्ध करें
  4. Android gradlew क्लीन के अंदर
  5. npm शुरू
  6. npm रन Android
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.