배포강의 복습하면서 최종 앱 확인해 보려고 하는데 아래와 같이 문재가 생겼습니다.
작성한 코드 및 에러 메세지
C:\Users\Owner\Desktop\sparta_study\sparta-myhoneytip-jun>expo start
┌────────────────────────────────────────────┐│ ││ There is a new version of expo-cli ││ available (6.0.6). ││ You are currently using expo-cli 6.0.5 ││ Install expo-cli globally using the ││ package manager of your choice; ││ for example: `npm install -g expo-cli` ││ to get the latest version ││ │└────────────────────────────────────────────┘
This command is being executed with the global Expo CLI. Learn more: https://blog.expo.dev/the-new-expo-cli-f4250d8e3421
To use the local CLI instead (recommended in SDK 46 and higher), run:
› npx expo start
Starting project at C:\Users\Owner\Desktop\sparta_study\sparta-myhoneytip-jun
Some dependencies are incompatible with the installed expo package version:
- react-native - expected version: 0.69.6 - actual version installed: 0.69.5
Your project may not work correctly until you
install the correct versions of the packages.
To install the correct versions of these packages, please run: expo doctor --fix-dependencies,
or install individual packages by running expo install [package-name ...]
Starting Metro Bundler
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █ ██▀▀ ▀▄██ ▄▄▄▄▄ █
█ █ █ █ ▀█ ▀▄█▄█ █ █ █
█ █▄▄▄█ █▀ █▄▀▀▄▀█ █▄▄▄█ █
█▄▄▄▄▄▄▄█▄█ ▀▄█ ▀▄█▄▄▄▄▄▄▄█
█▄▄██▄ ▄▀██▄█▄▀▄▀▄██ ▀▄▄ ▄█
█ ██▄█▄▄█ ▄█▀██▄▄▀ █▄ ▀██
█ ▀ ▀ ▄▀▀▀▀▄▀▀▄ █▀▄▀▀▄ ▀██
████ ▄▄▄███ ▄██ ▀▄▀ ▄ ▀███
█▄▄▄███▄▄ ▀▀█▄▀▄▀ ▄▄▄ ▀ ▄▄█
█ ▄▄▄▄▄ █▀▄▄█▀██▀ █▄█ ▀▀▀▀█
█ █ █ █▄█▄▄▀▄ █ ▄ ▄▄▀ █
█ █▄▄▄█ █▀▀ ▄ ▄▀█▀▄▀█▀▀ ██
█▄▄▄▄▄▄▄█▄▄██▄▄████▄▄▄▄▄▄▄█
› Metro waiting on exp://172.30.1.5:19000
› Scan the QR code above with Expo Go (Android)
or the Camera app (iOS)
› Press a │ open Android
› Press w │ open web
› Press r │ reload app
› Press m │ toggle menu
› Press ? │ show all commands
Logs for your project will appear below. Press Ctrl+C to exit.
Started Metro Bundler
Android Bundling complete 14523ms
Android Running app on SM-N986N
The native view manager required by name (ExpoAdsAdMobBannerView) from NativeViewManagerAdapter isn't exported by expo-modules-core. Views of this type may not render correctly. Exported view managers: [ExpoLinearGradient, ExpoBarCodeScannerView, ExpoVideoView, ExponentGLView, ExponentCamera].
at node_modules\expo\build\environment\react-native-logs.fx.js:null in warn
at node_modules\expo-modules-core\build\NativeViewManagerAdapter.native.js:null in requireNativeViewManager
at node_modules\expo-ads-admob\build\AdMobBanner.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at node_modules\expo-ads-admob\build\index.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at components\Card.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at pages\MainPage.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at navigation\StackNavigator.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at App.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at node_modules\expo\AppEntry.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at node_modules\metro-runtime\src\polyfills\require.js:null in guardedLoadModule
at http://172.30.1.5:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:null in global code
The native view manager required by name (ExpoAdsPublisherBannerView) from NativeViewManagerAdapter isn't exported by expo-modules-core. Views of this type may not render correctly. Exported view managers: [ExpoLinearGradient, ExpoBarCodeScannerView, ExpoVideoView, ExponentGLView, ExponentCamera].
at node_modules\expo\build\environment\react-native-logs.fx.js:null in warn
at node_modules\expo-modules-core\build\NativeViewManagerAdapter.native.js:null in requireNativeViewManager
at node_modules\expo-ads-admob\build\PublisherBanner.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at node_modules\expo-ads-admob\build\index.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at components\Card.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at pages\MainPage.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at navigation\StackNavigator.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at App.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at node_modules\expo\AppEntry.js:null in <global>
at node_modules\metro-runtime\src\polyfills\require.js:null in loadModuleImplementation
at node_modules\metro-runtime\src\polyfills\require.js:null in guardedLoadModule
at http://172.30.1.5:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=android&dev=true&hot=false&strict=false&minify=false:null in global code
파이어베이스에서 데이터 가져왔습니다!!
Invariant Violation: requireNativeComponent: "ViewManagerAdapter_ExpoAdsAdMobBannerView" was not found in the UIManager.
This error is located at:
in ViewManagerAdapter_ExpoAdsAdMobBannerView
in Adapter<ExpoAdsAdMobBannerView> (created by AdMobBanner)
in RCTView (created by View)
in View (created by AdMobBanner)
in AdMobBanner (created by MainPage)
in RCTView (created by View)
in View (created by ScrollView)
in RCTScrollView (created by ScrollView)
in ScrollView (created by ScrollView)
in ScrollView (created by MainPage)
in MainPage (created by SceneView)
in StaticContainer
in EnsureSingleNavigator (created by SceneView)
in SceneView (created by CardContainer)
in RCTView (created by View)
in View (created by CardContainer)
in RCTView (created by View)
in View (created by CardContainer)
in RCTView (created by View)
in View
in CardSheet (created by Card)
in RCTView (created by View)
in View (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by PanGestureHandler)
in PanGestureHandler (created by PanGestureHandler)
in PanGestureHandler (created by Card)
in RCTView (created by View)
in View (created by AnimatedComponent)
in AnimatedComponent
in AnimatedComponentWrapper (created by Card)
in RCTView (created by View)
in View (created by Card)
in Card (created by CardContainer)
in CardContainer (created by CardStack)
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 RNGestureHandlerRootView (created by GestureHandlerRootView)
in GestureHandlerRootView (created by StackView)
in StackView (created by StackNavigator)
in PreventRemoveProvider (created by NavigationContent)
in NavigationContent
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:null in error
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:null in reportException
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:null in handleException
at node_modules\react-native\Libraries\Core\ReactFiberErrorDialog.js:null in showErrorDialogat node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in logCapturedError
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in update.callback
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in callCallback
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitUpdateQueue
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitLayoutEffectOnFiber
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitLayoutMountEffects_complete
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitLayoutEffects_begin
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitLayoutEffects
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitRootImpl
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in commitRoot
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in performSyncWorkOnRoot
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in flushSyncCallbacks
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in flushSyncCallbacksOnlyInLegacyMode
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in scheduleUpdateOnFiber
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in dispatchSetState
at pages\MainPage.js:null in firebase_db.ref.once.then$argument_0
at node_modules\promise\setimmediate\core.js:null in tryCallOne
at node_modules\promise\setimmediate\core.js:null in setImmediate$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _allocateCallback$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _callTimer
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _callReactNativeMicrotasksPass
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in callReactNativeMicrotasks
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __callReactNativeMicrotasks
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in flushedQueue
Object {
"coords": Object {
"accuracy": 21.600000381469727,
"altitude": 217.09999084472656,
"altitudeAccuracy": 2.072702407836914,
"heading": 0,
"latitude": 37.3676829,
"longitude": 127.1702228,
"speed": 0,
},
"mocked": false,
"timestamp": 1664714425367,
}
37.3676829
127.1702228
Object {
"config": Object {
"adapter": [Function xhrAdapter],
"data": undefined,
"env": Object {
"FormData": null,
},
"headers": Object {
"Accept": "application/json, text/plain, */*",
},
"maxBodyLength": -1,
"maxContentLength": -1,
"method": "get",
"timeout": 0,
"transformRequest": Array [
[Function transformRequest],
],
"transformResponse": Array [
[Function transformResponse],
],
"transitional": Object {
"clarifyTimeoutError": false,
"forcedJSONParsing": true,
"silentJSONParsing": true,
},
"validateStatus": [Function validateStatus],
"xsrfCookieName": "XSRF-TOKEN",
"xsrfHeaderName": "X-XSRF-TOKEN",
},
"data": Object {
"base": "stations",
"clouds": Object {
"all": 100,
},
"cod": 200,
"coord": Object {
"lat": 37.3677,
"lon": 127.1702,
},
"dt": 1664714427,
"id": 1845275,
"main": Object {
"feels_like": 16.19,
"humidity": 92,
"pressure": 1015,
"temp": 16.12,
"temp_max": 17.78,
"temp_min": 14.47,
},
"name": "Chuja-ri",
"rain": Object {
"1h": 1.15,
},
"sys": Object {
"country": "KR",
"id": 5509,
"sunrise": 1664659620,
"sunset": 1664702069,
"type": 1,
},
"timezone": 32400,
"visibility": 8000,
"weather": Array [
Object {
"description": "light intensity shower rain",
"icon": "09n",
"id": 520,
"main": "Rain",
},
],
"wind": Object {
"deg": 190,
"speed": 4.63,
},
},
"headers": Object {
"access-control-allow-credentials": "true",
"access-control-allow-methods": "GET, POST",
"access-control-allow-origin": "*",
"connection": "keep-alive",
"content-length": "504",
"content-type": "application/json; charset=utf-8",
"date": "Sun, 02 Oct 2022 12:40:27 GMT",
"server": "openresty",
"x-cache-key": "/data/2.5/weather?lat=37.37&lon=127.17&units=metric",
},
"request": XMLHttpRequest {
"DONE": 4,
"HEADERS_RECEIVED": 2,
"LOADING": 3,
"OPENED": 1,
"UNSENT": 0,
"_aborted": false,
"_cachedResponse": undefined,
"_hasError": false,
"_headers": Object {
"accept": "application/json, text/plain, */*",
},
"_incrementalEvents": false,
"_lowerCaseResponseHeaders": Object {
"access-control-allow-credentials": "true",
"access-control-allow-methods": "GET, POST",
"access-control-allow-origin": "*",
"connection": "keep-alive",
"content-length": "504",
"content-type": "application/json; charset=utf-8",
"date": "Sun, 02 Oct 2022 12:40:27 GMT", "server": "openresty",
"x-cache-key": "/data/2.5/weather?lat=37.37&lon=127.17&units=metric",
},
"_method": "GET",
"_perfKey": "network_XMLHttpRequest_http://api.openweathermap.org/data/2.5/weather?lat=37.3676829&lon=127.1702228&appid=cfc258c75e1da2149c33daffd07a911d&units=metric",
"_performanceLogger": PerformanceLogger {
"_closed": false,
"_extras": Object {},
"_pointExtras": Object {},
"_points": Object {
"initializeCore_end": 1664714422349,
"initializeCore_start": 1664714422305, },
"_timespans": Object {
"network_XMLHttpRequest_http://172.30.1.5:19000/logs": Object {
"endExtras": undefined,
"endTime": 1664714422918,
"startExtras": undefined,
"startTime": 1664714422822,
"totalTime": 96,
},
"network_XMLHttpRequest_http://172.30.1.5:19000/symbolicate": Object {
"endExtras": undefined,
"endTime": 1664714422825,
"startExtras": undefined,
"startTime": 1664714422680,
"totalTime": 145,
},
"network_XMLHttpRequest_http://api.openweathermap.org/data/2.5/weather?lat=37.3676829&lon=127.1702228&appid=cfc258c75e1da2149c33daffd07a911d&units=metric": Object {
"endExtras": undefined,
"endTime": 1664714426073,
"startExtras": undefined,
"startTime": 1664714425399,
"totalTime": 674,
},
},
},
"_requestId": null,
"_response": "{\"coord\":{\"lon\":127.1702,\"lat\":37.3677},\"weather\":[{\"id\":520,\"main\":\"Rain\",\"description\":\"light intensity shower rain\",\"icon\":\"09n\"}],\"base\":\"stations\",\"main\":{\"temp\":16.12,\"feels_like\":16.19,\"temp_min\":14.47,\"temp_max\":17.78,\"pressure\":1015,\"humidity\":92},\"visibility\":8000,\"wind\":{\"speed\":4.63,\"deg\":190},\"rain\":{\"1h\":1.15},\"clouds\":{\"all\":100},\"dt\":1664714427,\"sys\":{\"type\":1,\"id\":5509,\"country\":\"KR\",\"sunrise\":1664659620,\"sunset\":1664702069},\"timezone\":32400,\"id\":1845275,\"name\":\"Chuja-ri\",\"cod\":200}",
"_responseType": "",
"_sent": true,
"_subscriptions": Array [],
"_timedOut": false,
"_trackingName": "unknown",
"readyState": 4,
"responseHeaders": Object {
"Access-Control-Allow-Credentials": "true",
"Access-Control-Allow-Methods": "GET, POST",
"Access-Control-Allow-Origin": "*",
"Connection": "keep-alive",
"Content-Length": "504",
"Content-Type": "application/json; charset=utf-8",
"Date": "Sun, 02 Oct 2022 12:40:27 GMT", "Server": "openresty",
"X-Cache-Key": "/data/2.5/weather?lat=37.37&lon=127.17&units=metric",
},
"responseURL": "http://api.openweathermap.org/data/2.5/weather?lat=37.3676829&lon=127.1702228&appid=cfc258c75e1da2149c33daffd07a911d&units=metric",
"status": 200,
"timeout": 0,
"upload": XMLHttpRequestEventTarget {},
"withCredentials": true,
},
"status": 200,
"statusText": undefined,
}
16.12
Rain
[Unhandled promise rejection: Invariant Violation: requireNativeComponent: "ViewManagerAdapter_ExpoAdsAdMobBannerView" was not found in the UIManager.]
at node_modules\invariant\browser.js:null in invariant
at node_modules\react-native\Libraries\ReactNative\getNativeComponentAttributes.js:null in getNativeComponentAttributes
at node_modules\react-native\Libraries\Renderer\shims\ReactNativeViewConfigRegistry.js:null
in exports.get
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in createInstance
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in completeWork
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in completeUnitOfWork
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in performUnitOfWork
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in workLoopSync
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in renderRootSync
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in performSyncWorkOnRoot
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in flushSyncCallbacks
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in flushSyncCallbacksOnlyInLegacyMode
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in scheduleUpdateOnFiber
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:null in dispatchSetState
at pages\MainPage.js:null in firebase_db.ref.once.then$argument_0
at node_modules\promise\setimmediate\core.js:null in tryCallOne
at node_modules\promise\setimmediate\core.js:null in setImmediate$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _allocateCallback$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _callTimer
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in _callReactNativeMicrotasksPass
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:null in callReactNativeMicrotasks
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __callReactNativeMicrotasks
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in flushedQueue
Cannot connect to Metro.
Try the following to fix the issue:
- Ensure that Metro is running and available on the same network
- Ensure that your device/emulator is connected to your machine and has USB debugging enabled - run 'adb devices' to see a list of connected devices
- If you're on a physical device connected to
the same machine, run 'adb reverse tcp:8081 tcp:8081' to forward requests from your device
- If your device is on the same Wi-Fi network, set 'Debug server host & port for device' in
'Dev settings' to your machine's IP address and the port of the local dev server - e.g. 10.0.1.1:8081
URL: 172.30.1.5:19000
Error: Software caused connection abort
at node_modules\expo\build\environment\react-native-logs.fx.js:null in warn
at node_modules\react-native\Libraries\Utilities\HMRClient.js:null in setHMRUnavailableReason
at node_modules\react-native\Libraries\Utilities\HMRClient.js:null in client.on$argument_1
at node_modules\metro-runtime\src\modules\vendor\eventemitter3.js:null in emit
at node_modules\metro-runtime\src\modules\HMRClient.js:null in _ws.onerror
at node_modules\event-target-shim\dist\event-target-shim.js:null in EventTarget.prototype.dispatchEvent
at node_modules\react-native\Libraries\WebSocket\WebSocket.js:null in _eventEmitter.addListener$argument_1
at node_modules\react-native\Libraries\vendor\emitter\_EventEmitter.js:null in EventEmitter#emit
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __callFunction
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:null in callFunctionReturnFlushedQueue
류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!