커뮤니티
포인트
로딩중
쿠폰
내 강의실
국비 신청 내역
수강권
증명서
숙제 피드백
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
전면 광고 배너 설치 중 오류
앱개발 종합반 - 리액트 네이티브
5주차
북마크
윤*옥
댓글
2
추천
0
조회수
14
조회수
14
답변 완료

5주차 전면광고 배너 설치하는 코드 작성 이후 이러한 오류메시지가 뜹니다 .


Android Bundling complete 49ms

Android Running app on (기종넘버)


Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager.


This error is located at:

  in RNSScreen (created by AnimatedComponent)

  in AnimatedComponent

  in AnimatedComponentWrapper (created by Screen)

  in MaybeFreeze (created by Screen)

  in Screen (created by MaybeScreen)

  in MaybeScreen (created by CardStack)

  in RNSScreenContainer (created by ScreenContainer)

  in ScreenContainer (created by MaybeScreenContainer)

  in MaybeScreenContainer (created by CardStack)

  in RCTView (created by View)

  in View (created by Background)

  in Background (created by CardStack)

  in CardStack (created by HeaderShownContext)

  in RNCSafeAreaProvider (created by SafeAreaProvider)

  in SafeAreaProvider (created by SafeAreaInsetsContext)

  in SafeAreaProviderCompat (created by StackView)

  in GestureHandlerRootView (created by GestureHandlerRootView)

  in GestureHandlerRootView (created by StackView)

  in StackView (created by StackNavigator)

  in Unknown (created by StackNavigator)

  in StackNavigator (created by StackNavigator)

  in StackNavigator (created by App)

  in EnsureSingleNavigator

  in BaseNavigationContainer

  in ThemeProvider

  in NavigationContainerInner (created by App)

  in App (created by ExpoRoot)

  in ExpoRoot

  in RCTView (created by View)

  in View (created by AppContainer)

  in RCTView (created by View)

  in View (created by AppContainer)

  in AppContainer

  in main(RootComponent)

at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error

at node_modules\react-native\Libraries\Core\ExceptionsManager.js:95:4 in reportException

at node_modules\react-native\Libraries\Core\ExceptionsManager.js:141:19 in handleException

at node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError

at node_modules\expo-error-recovery\build\ErrorRecovery.fx.js:12:21 in ErrorUtils.setGlobalHandler$argument_0

at node_modules\@babel\runtime\helpers\regeneratorRuntime.js:86:13 in tryCatch

at node_modules\@babel\runtime\helpers\regeneratorRuntime.js:66:31 in <anonymous>

at node_modules\@babel\runtime\helpers\regeneratorRuntime.js:86:13 in tryCatch

at node_modules\@babel\runtime\helpers\regeneratorRuntime.js:124:27 in invoke

at node_modules\@babel\runtime\helpers\regeneratorRuntime.js:130:16 in PromiseImpl.resolve.then$argument_0

at node_modules\promise\setimmediate\core.js:37:13 in tryCallOne

at node_modules\promise\setimmediate\core.js:123:24 in setImmediate$argument_0

at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:248:12 in _allocateCallback$argument_0   

at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:112:14 in _callTimer

at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:162:14 in _callReactNativeMicrotasksPass  

at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:413:41 in callReactNativeMicrotasks    

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:391:6 in __callReactNativeMicrotasksat node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:133:6 in __guard$argument_0

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:368:10 in __guard

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:132:4 in flushedQueue


Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager.


This error is located at:

  in RNSScreen (created by AnimatedComponent)

  in AnimatedComponent

  in AnimatedComponentWrapper (created by Screen)

  in MaybeFreeze (created by Screen)

  in Screen (created by MaybeScreen)

  in MaybeScreen (created by CardStack)

  in RNSScreenContainer (created by ScreenContainer)

  in ScreenContainer (created by MaybeScreenContainer)

  in MaybeScreenContainer (created by CardStack)

  in RCTView (created by View)

  in View (created by Background)

  in Background (created by CardStack)

  in CardStack (created by HeaderShownContext)

  in RNCSafeAreaProvider (created by SafeAreaProvider)

  in SafeAreaProvider (created by SafeAreaInsetsContext)

  in SafeAreaProviderCompat (created by StackView)

  in GestureHandlerRootView (created by GestureHandlerRootView)

  in GestureHandlerRootView (created by StackView)

  in StackView (created by StackNavigator)

  in Unknown (created by StackNavigator)

  in StackNavigator (created by StackNavigator)

  in StackNavigator (created by App)

  in EnsureSingleNavigator

  in BaseNavigationContainer

  in ThemeProvider

  in NavigationContainerInner (created by App)

  in App (created by ExpoRoot)

  in ExpoRoot

  in RCTView (created by View)

  in View (created by AppContainer)

  in RCTView (created by View)

  in View (created by AppContainer)

  in AppContainer

  in main(RootComponent)

at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error

at node_modules\react-native\Libraries\Core\ExceptionsManager.js:95:4 in reportException

at node_modules\react-native\Libraries\Core\ExceptionsManager.js:141:19 in handleException

at node_modules\react-native\Libraries\Core\ReactFiberErrorDialog.js:52:4 in showErrorDialog

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:12589:34 in logCapturedError

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:12682:20 in update.callback

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:7345:2 in callCallback

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:7366:20 in commitUpdateQueue

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:17337:27 in commitLayoutEffectOnFiber

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18438:33 in commitLayoutMountEffects_complete

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18421:39 in commitLayoutEffects_begin

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18404:27 in commitLayoutEffects

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:20103:23 in commitRootImpl

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19972:18 in commitRoot

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19484:12 in performSyncWorkOnRoot

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5975:29 in flushSyncCallbacks

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5954:22 in flushSyncCallbacksOnlyInLegacyMode

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19016:42 in scheduleUpdateOnFiber

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:22268:34 in updateContainer

at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:22977:17 in render

at node_modules\react-native\Libraries\ReactNative\renderApplication.js:76:4 in renderApplication     

at node_modules\react-native\Libraries\ReactNative\AppRegistry.js:119:25 in runnables.appKey.run

at node_modules\react-native\Libraries\ReactNative\AppRegistry.js:213:4 in runApplication

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:417:4 in __callFunction

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:114:6 in __guard$argument_0

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:368:10 in __guard

at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:4 in callFunctionReturnFlushedQueue





아래는 Card.js 코드입니다.

import React, { useEffect } from "react"

import { View, Text, Image, StyleSheet, TouchableOpacity, Platform } from "react-native";

import {

  setTestDeviceIDAsync,

  AdMobBanner,

  AdMobInterstitial,

  PublisherBanner,

  AdMobRewarded

} from 'expo-ads-admob'; //admob 광고 추가


//MainPage로 부터 navigation 속성을 전달받아 Card 컴포넌트 안에서 사용

export default function Card({ content, navigation }) {


  useEffect(() => {

    // 전면 광고

    // Card.js에 들어오자마자 전면 광고 준비하느라 useEffect에 설정

    // 애드몹도 외부 API 이므로 실행 순서를 지키기위해 async/await 사용!

    // 안드로이드와 IOS 각각 광고 준비 키가 다르기 때문에 디바이스 성격에 따라 다르게 초기화 시켜줘야 합니다.

    Platform.OS === 'ios' ? AdMobInterstitial.setAdUnitID("ca-app-pub-7292709760794607/7112217304") : AdMobInterstitial.setAdUnitID("ca-app-pub-7292709760794607/1214939085")

    AdMobInterstitial.addEventListener("interstitialDidLoad", () =>

      console.log("interstitialDidLoad")

    );

    AdMobInterstitial.addEventListener("interstitialDidFailToLoad", () =>

      console.log("interstitialDidFailToLoad")

    );

    AdMobInterstitial.addEventListener("interstitialDidOpen", () =>

      console.log("interstitialDidOpen")

    );

    AdMobInterstitial.addEventListener("interstitialDidClose", () => {

      //광고가 끝나면 다음 코드 줄이 실행!

      console.log("interstitialDidClose")

    });

  }, [])

  const goDetail = async () => {

    try {

      await AdMobInterstitial.requestAdAsync({ servePersonalizedAds: true }); // 개인화 광고

      await AdMobInterstitial.showAdAsync(); // 광고 노출

      await navigation.navigate('DetailPage', { idx: content.idx }) //광고 이후 화면 이동

    } catch (error) {

      console.log(error)

      await navigation.navigate('DetailPage', { idx: content.idx })

    }

  }


    return (

      //카드 자체가 버튼역할로써 누르게되면 DetailPage로 넘어가게끔 TouchableOpacity를 사용

      //content를 같이 넘긴다

      <TouchableOpacity style={styles.card} onPress={()=>{goDetail()}}>

      {/* <TouchableOpacity style={styles.card} onPress={()=>{navigation.navigate('DetailPage',{idx:content.idx})}}> */}

        {/* content가 아니라 content의 ids만 넘겨줌으로써 데이터의 큰 이동을 막음 */}

        <Image style={styles.cardImage} source={{uri:content.image}}/>

        <View style={styles.cardText}>

          <Text style={styles.cardTitle} numberOfLines={1}>{content.title}</Text>

          <Text style={styles.cardDesc} numberOfLines={3}>{content.desc}</Text>

          <Text style={styles.cardDate}>{content.date}</Text>

        </View>

      </TouchableOpacity>

    )

}


const styles = StyleSheet.create({


  card:{

    flex:1,

    flexDirection:"row",

    margin:10,

    borderBottomWidth:0.5,

    borderBottomColor:"#eee",

    paddingBottom:10


  },

  cardImage: {

    flex:1,

    width:100,

    height:100,

    borderRadius:10,

  },

  cardText: {

    flex:2,

    flexDirection:"column",

    marginLeft:10,

  },

  cardTitle: {

    fontSize:20,

    fontWeight:"700"

  },

  cardDesc: {

    fontSize:15

  },

  cardDate: {

    fontSize:10,

    color:"#A6A6A6",

  }

});





















취소
 공유
취소
댓글 0
댓글 알림
나의얼굴