월 14,300원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨배달앱 클론코딩 [with React Native]
Ing component navigation type error
Ing 컴포넌트의 네비게이션 타입을 강좌에 나온대로 진행하였더니 타입에러가 발생해서 문의글 남깁니다.컴포넌트 하단부 도착 마커의 navigation.push("Complete", {}); 에서 push 관련된 타입에러가 발생하였습니다.Property 'push' does not exist on type 'NavigationProp라는 에러메세지가 발생하였는데요.우선 아래의 사진과 같이 navigation의 타입을 재선언 해주면서 해결이 되었습니다.LoggedInParamList 대신에 생성한 IngScreenPorps를 넣어봤으면 push에 대한 에러는 해결되지만 complete라는 네비게이션을 찾지 못한다는 에러가 발생하여 위와같이 해결했는데 옳바른 해결책인지 궁금해서 문의 드립니다! 그리고 추가로console.dir 을 활용하려고 하면TS2339: Property 'dir' does not exist on type 'Console'.위와 같은 에러가 발생하는데 이건 해결책이 없을까요? 혼자 찾아보려고 했으나 찾지를 못하여 문의드립니다.
- 해결됨배달앱 클론코딩 [with React Native]
useCallback안에 item.orderId 넣는 이유가 궁금합니다.
제가 useCallback에 관해서 잘못 이해하고 있는것인지 모르겠으나 EachOrder라는 컴포넌트 내에서는 item.orderId가 변경될 일이 없으니 생략해도 괜찮은 구문이 아닌지 헷갈려 질문드립니다!
- 미해결배달앱 클론코딩 [with React Native]
앱이름 변경시 한글로 하면안됩니다.
구글링해서 찾아보긴했으나 답이 안보이네요...영어로는 리엑트네이티브 첫페이지 로딩을 잘하는데 한글로 변경하면 로딩을 못합니다...코드를 올리고 할부분은 아닌듯해서 질문만 드립니다~버전 문제일수도있나요?
- 미해결배달앱 클론코딩 [with React Native]
[ios] 시뮬레이터에서 위치 권한 설정
ios 시뮬레이터에서 위치 권한 허용을 어떻게 할 수 있나요?권한이 DENIED가 나와서 세팅 화면으로 넘어가는데 위치 설정을 못찾겠네요..시뮬레이터는 iPhone13 이고 Xcode는 14.1 버전 입니다.
- 해결됨배달앱 클론코딩 [with React Native]
localNotification android 작동안함
PushNotification.localNotification 이 포그라운드 일떄안드로이드에서 백그라운드 때처럼 알림동작을 하지 않습니다.메니페스트는 잘 추가한 상태입니다.<meta-data android:name="com.dieam.reactnativepushnotification.notification_foreground"android:value="true"/> ..... onNotification: function (notification: any) { if (notification.channelId === 'riders') { console.log('NOTIFICATION riders:', notification); if (notification.message || notification.data.message) { const title = notification.title || notification.data.title; const message = notification.message || notification.data.message; //Alert.alert(title, message, [{text: '확인'}]); if (notification.foreground) { PushNotification.localNotification({ channelId: 'riders', autoCancel: true, title: 'title', message: 'message', invokeApp: true, }); } } } notification.finish(PushNotificationIOS.FetchResult.NoData); } ..... onNotification이 펑션은 잘 물고 들어옵니다.console.log('NOTIFICATION:', notification);로그도 잘 찍히구요.하지만 이 안에서 선언한PushNotification.localNotification펑션이 전혀 반응이 없습니다.가이드를 정독해도 제가 놓친 부분이 없네요...포그라운드일때도 백그라운드일때처럼 알림이 오길 원해서 추가한 코드인데 되지를 않네요 ...혹시 이에대해서 해답을 아시면 공유 부탁드립니다. ㅜ
- 미해결배달앱 클론코딩 [with React Native]
탭
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
- 미해결배달앱 클론코딩 [with React Native]
소셜 로그인 관련 질문입니다.
제로초님 안녕하세요. 강의 잘 듣고 있습니다. 좋은 강의 감사합니다. 강의를 바탕으로 구글 소셜 로그인과 Firebase를 이용해서 개인 프로젝트를 진행하고 있는데요. refresh token을 바탕으로 앱을 다시 켰을 때 로그인 상태를 유지하게끔 하려고 하는 중입니다. 한참 시간을 쓴 끝에 구글 api에서 처음 로그인할 때 받는 refresh token을 가지고 새로운 access token을 받아오는 것까지 만들었는데, 만들고 보니 이걸 어떻게 써야하나 싶은 생각이 들어서요. 제로초님 코드나 이전 다른 수강생들의 질문을 보니 결국 중요한 건 구글 api에서 받아오는 access token이나 refresh token이 아니라 Firebase에서 받아오는 것이어야 할 것 같아서 이걸 왜 했나 싶어서 약간 허탈한 상태인데요.다른 질문글에서 답변해주신 것처럼 소셜 로그인에서 하는 게 결국 그냥 이메일 주소를 가져오는 것이라면, 구글 api 같은 소셜로그인 과정에서 받아오는 access token이나 refresh token은 별 의미가 없는 것인가요? 이것들은 언제 어떻게 사용할 수 있는 건가요?
- 해결됨배달앱 클론코딩 [with React Native]
children의 타입질문
DismissKeyboardView 컴포넌트에 React.FC타입을 추가해주어도 children props에 지속적으로 에러표시가 떠서 해결책을 찾다가 아래와 같이 수정해두었는데 별다른 문제가 없을지 궁금합니다. 그리고 혹시 제로초님께서 제작하신 타입스크립트 강좌들에는 강의중에 보여주신 오래된 라이브러리의 타입을 정의하는 방법들까지도 배워볼 수 있을까요?타입스크립트 학습이 너무 부족한게 느껴져서요.import React from "react"; import { Keyboard, StyleProp, TouchableWithoutFeedback, ViewStyle, } from "react-native"; import {KeyboardAwareScrollView} from "react-native-keyboard-aware-scrollview"; type Component = { style?: StyleProp<ViewStyle>; children: JSX.Element[] | JSX.Element; }; const DismissKeyboardView: React.FC<Component> = ({children, ...props}) => ( <TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}> <KeyboardAwareScrollView {...props} style={props.style}> {children} </KeyboardAwareScrollView> </TouchableWithoutFeedback> ); export default DismissKeyboardView;
- 미해결배달앱 클론코딩 [with React Native]
루비 버전 문제 같은데요 도무지 해결이 안되서요 ...
제로초님 나름 해결하려는 데 도저히 안되서 문의 드립니다 다름 아니라 맥환경에서 설정하고 난뒤 아래와 같이 npx react-native init FoodDeliveryApp --template react-native-template-typescript명령어를 치고 실행하니 아래와 같은 오류가 떠서요 도무지 해결이 안됩니다.error 가 뜹니다구글링 해봐도 도무지 없어서 문의드립니다✖ Installing Bundlererror Your Ruby version is 2.6.10, but your Gemfile specified 2.7.5✖ Installing Bundlererror Error: Looks like your iOS environment is not properly set. Please go to https://reactnative.dev/docs/next/environment-setup and follow the React Native CLI QuickStart guide for macOS and iOS.
- 미해결배달앱 클론코딩 [with React Native]
[macOS] run android 시 build failed 문제 (build.gradle.kts)
https://reactnative.dev/docs/environment-setup 보면서 기초 세팅 하고나서 프로젝트 생성 후 rpx react-native run-android 명령어를 치면 다음과 같이 빌드에러가 발생합니다. [버전 정보]macOS: Monterey 12.6.1, 2.7GHz 쿼드 코어 Intel Core i7node-v: v18.12.1watchman-v: 2022.11.07.00 java -version: openjdk version "11.0.17" 2022-10-18 LTSANDROID_SDK_ROOT 환경변수 설정 후 adb 명령어 입력: Android Debug Bridge version 1.0.41공식문서에 나온대로 안드로이드 sdk 31 버전 다운로드하였습니다. [에러 메시지]~/Desktop/react-native-workspace/AweSomeProject 10:35:46 ❯ npx react-native run-android warn Multiple Podfiles were found: ios/Podfile,vendor/bundle/ruby/2.7.0/gems/cocoapods-core-1.11.3/lib/cocoapods-core/Podfile. Choosing ios/Podfile automatically. If you would like to select a different one, you can configure it via "project.ios.sourceDir". You can learn more about it here: https://github.com/react-native-community/cli/blob/master/docs/configuration.md info JS server already running. info Installing the app... FAILURE: Build failed with an exception. * Where: Build file '/Users/jihoon/Desktop/react-native-workspace/AweSomeProject/node_modules/react-native-gradle-plugin/build.gradle.kts' line: 12 * What went wrong: Error resolving plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.6.10'] > Could not resolve all dependencies for configuration 'detachedConfiguration1'. > Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(http://maven.anypoint.tv/repository/public)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.5.1/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 3s error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081 FAILURE: Build failed with an exception. * Where: Build file '/Users/jihoon/Desktop/react-native-workspace/AweSomeProject/node_modules/react-native-gradle-plugin/build.gradle.kts' line: 12 * What went wrong: Error resolving plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.6.10'] > Could not resolve all dependencies for configuration 'detachedConfiguration1'. > Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(http://maven.anypoint.tv/repository/public)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.5.1/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 3s at makeError (/Users/jihoon/Desktop/react-native-workspace/AweSomeProject/node_modules/execa/index.js:174:9) at /Users/jihoon/Desktop/react-native-workspace/AweSomeProject/node_modules/execa/index.js:278:16 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async runOnAllDevices (/Users/jihoon/Desktop/react-native-workspace/AweSomeProject/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:109:5) at async Command.handleAction (/Users/jihoon/Desktop/react-native-workspace/AweSomeProject/node_modules/@react-native-community/cli/build/index.js:142:9) info Run CLI with --verbose flag for more details. [build.gradle.kts]에러의 12번줄에 해당하는 코드 = kotlin("jvm") version "1.6.10"/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import org.gradle.api.internal.classpath.ModuleRegistry import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.configurationcache.extensions.serviceOf plugins { kotlin("jvm") version "1.6.10" id("java-gradle-plugin") } repositories { google() mavenCentral() } gradlePlugin { plugins { create("react") { id = "com.facebook.react" implementationClass = "com.facebook.react.ReactPlugin" } } } group = "com.facebook.react" dependencies { implementation(gradleApi()) implementation("com.android.tools.build:gradle:7.2.1") implementation("com.google.code.gson:gson:2.8.9") implementation("com.google.guava:guava:31.0.1-jre") implementation("com.squareup:javapoet:1.13.0") testImplementation("junit:junit:4.13.2") testRuntimeOnly( files( serviceOf<ModuleRegistry>() .getModule("gradle-tooling-api-builders") .classpath .asFiles .first())) } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions { jvmTarget = JavaVersion.VERSION_11.majorVersion } } tasks.withType<Test>().configureEach { testLogging { exceptionFormat = TestExceptionFormat.FULL showExceptions = true showCauses = true showStackTraces = true } } 프로젝트를 생성하자마자 빌드에러가 떠서 에뮬레이터랑 연결할 수 없네요. 에러 메시지를 보면 maven 리포지토리 주소를 변경하라고 하는 것 같은데 어느 파일에 어느 위치에 변경해야할지 모르겠습니다.깃헙주소: github.com/kkj0712/AweSomeProject
- 미해결배달앱 클론코딩 [with React Native]
안드로이드 애뮬레이터 빌드 중
안녕하세요 강의 듣다가 여쭤볼게 있어 질문올립니다. npm i react-native-screens를 하고 난후 안드로이드 스튜디오에서 Sync Project with Gradle Files를 통해 Sync를 하는 과정에서 Event log에 Duplicate content roots detected: Path [C:/react-native/app/node_modules/react-native-screens/android/build/generated/source/codegen/java] of module [app.react-native-screens.main] was removed from modules [app.react-native-screens.main] 이런 메시지가 나오는데 없애는 해결방법은 없을 까요?
- 미해결배달앱 클론코딩 [with React Native]
react-native-keyboard-aware-scroll-view 버튼 질문입니다.
안녕하세요. 좋은 강의 잘 듣고 있습니다.사진 업로드가 안되서 스크린샷은 못올렸습니다.input을 클릭하면 스크롤이 생겨서 버튼이 보이게 아래로 스크롤이 되긴하지만 처음부터 input을 클릭했을 때 버튼도 키보드 위로 보이게 하고 싶어서<KeyboardAwareScrollView {...props} style={props.style} extraScrollHeight={180}> {children} </KeyboardAwareScrollView>extraScrollHeight 옵션을 추가해줘서 버튼이 키보드에 가려지는거 없이 다 보이게는 올라옵니다.그런데 여기서 문제가마지막 세번째 비밀번호 input을 클릭했을 경우에만 버튼이 올라오고 첫번째와 두번째 이메일, 이름 input을 클릭했을 때는 버튼이 올라오지 않고 스크롤만 생깁니다. 추가로 버튼이 키보드 위로 올라오면서 화면 최상단 회원가입 타이틀(headerShown의 헤더부분 X)이 가려지는데 위에 회원가입 타이틀이랑 버튼을 모두 화면에 담겨지게끔 화면을 위아래 쪼그라지게하려면 css로 작업을 해야하는건가요? KeyboardAvoingView는 자체적으로 쪼그라지게 하는 것 같은데 KeyboardAwareScrollView는 그런 기능이 문서에 없는 것 같아 질문드렸습니다.
- 미해결배달앱 클론코딩 [with React Native]
서버 연결 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.연결은 되었는데 아래와 같은 에러들이 나면서 회원가입이 되지 않습니다.백엔드 서버를 삭제하고 다시 깔아도 똑같은 오류가 납니다. 어떻게 해결해야 할지 모르겠어서 질문 남깁니다.
- 미해결배달앱 클론코딩 [with React Native]
axios 사용시 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. axios 설치 후 소스코드 적어서 실행하면 아래와 같이 타입에러가 납니다 .. 다른 맥 프로젝트에서도 동일하게 axios사용하고 있는데 ,, 이런 오류가 왜 나는지 모르겠네요 ㅠㅠ import axios from 'axios';axios 선언도 이렇게 밖에 안했습니다 ..
- 미해결배달앱 클론코딩 [with React Native]
카카오 소셜로그인 질문입니다.
FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'aniwalk'.> Could not determine the dependencies of null.> Could not resolve all task dependencies for configuration ':classpath'.> Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.15.Searched in the following locations:- https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.15/kotlin-gradle-plugin-1.1.15.pom- https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.15/kotlin-gradle-plugin-1.1.15.pomRequired by:project :* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 2serror Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'aniwalk'.> Could not determine the dependencies of null.> Could not resolve all task dependencies for configuration ':classpath'.> Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.15.Searched in the following locations:- https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.15/kotlin-gradle-plugin-1.1.15.pom- https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.15/kotlin-gradle-plugin-1.1.15.pomRequired by:project :* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 2sat makeError (/Users/junghanma/dev/aniwalk/node_modules/execa/index.js:174:9)at /Users/junghanma/dev/aniwalk/node_modules/execa/index.js:278:16at processTicksAndRejections (node:internal/process/task_queues:96:5)at async runOnAllDevices (/Users/junghanma/dev/aniwalk/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:109:5)at async Command.handleAction (/Users/junghanma/dev/aniwalk/node_modules/@react-native-community/cli/build/index.js:142:9)info Run CLI with --verbose flag for more details.✘ ~/dev/aniwalk master ±✚ cd android~/dev/aniwalk/android master ±✚ ./gradlew cleanStarting a Gradle Daemon (subsequent builds will be faster)> Configure project :react-native-gradle-plugine: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/build.gradle.kts:10:49: Cannot access 'serviceOf': it is internal in 'org.gradle.configurationcache.extensions'e: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/build.gradle.kts:44:11: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:internal inline fun <reified T : Any> TaskInternal.serviceOf(): TypeVariable(T) defined in org.gradle.configurationcache.extensionsFAILURE: Build failed with an exception.* Where:Build file '/Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/build.gradle.kts' line: 10* What went wrong:Script compilation errors:Line 10: import org.gradle.configurationcache.extensions.serviceOf^ Cannot access 'serviceOf': it is internal in 'org.gradle.configurationcache.extensions'Line 44: serviceOf<ModuleRegistry>()^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:internal inline fun <reified T : Any> TaskInternal.serviceOf(): TypeVariable(T) defined in org.gradle.configurationcache.extensions2 errors* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 25s✘ ~/dev/aniwalk/android master ±✚ ./gradlew clean> Task :react-native-gradle-plugin:compileKotlinw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactExtension.kt: (10, 37): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactExtension.kt: (119, 30): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactExtension.kt: (135, 26): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactExtension.kt: (157, 32): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactExtension.kt: (163, 31): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactExtension.kt: (171, 36): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/ReactPlugin.kt: (114, 48): 'reactRoot: DirectoryProperty' is deprecated. reactRoot was confusing and has been replace with root to point to your root project and reactNativeDir to point to the folder of the react-native NPM packagew: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (10, 37): 'ApplicationVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (11, 37): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (12, 37): 'LibraryVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (27, 51): 'BaseVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (130, 12): 'ApplicationVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (131, 12): 'LibraryVariant' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt: (251, 14): 'BaseVariant' is deprecated. Deprecated in Java> Configure project :react-native-seoul_kakao-login:react-native-seoul_kakao-login:android.kotlin using custom value: 1.5.10:react-native-seoul_kakao-login:kakao.sdk using default value: 2.11.1:react-native-seoul_kakao-login:kakao.sdk using default value: 2.11.1:react-native-seoul_kakao-login:kakao.sdk using default value: 2.11.1:react-native-seoul_kakao-login package.json found at /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/package.json:react-native-seoul_kakao-login:version set from package.json: 5.2.3 (5,2,3 - 5002003):react-native-seoul_kakao-login:android.compileSdk using custom value: 31:react-native-seoul_kakao-login:android.targetSdk using custom value: 31:react-native-seoul_kakao-login:android.minSdk using custom value: 21:react-native-seoul_kakao-login:reactNativeAndroidDir /Users/junghanma/dev/aniwalk/node_modules/react-native/androidDeprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.See https://docs.gradle.org/7.5.1/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 32s9 actionable tasks: 9 executed~/dev/aniwalk/android master ±✚ npm run ad> aniwalk@0.0.1 ad> react-native run-androidinfo Starting JS server...info Launching emulator...info Successfully launched emulator.info Installing the app...> Configure project :react-native-seoul_kakao-login:react-native-seoul_kakao-login:android.kotlin using custom value: 1.5.10:react-native-seoul_kakao-login:kakao.sdk using default value: 2.11.1:react-native-seoul_kakao-login:kakao.sdk using default value: 2.11.1:react-native-seoul_kakao-login:kakao.sdk using default value: 2.11.1:react-native-seoul_kakao-login package.json found at /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/package.json:react-native-seoul_kakao-login:version set from package.json: 5.2.3 (5,2,3 - 5002003):react-native-seoul_kakao-login:android.compileSdk using custom value: 31:react-native-seoul_kakao-login:android.targetSdk using custom value: 31:react-native-seoul_kakao-login:android.minSdk using custom value: 21:react-native-seoul_kakao-login:reactNativeAndroidDir /Users/junghanma/dev/aniwalk/node_modules/react-native/android> Task :react-native-safe-area-context:compileDebugKotlinw: /Users/junghanma/dev/aniwalk/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt: (50, 23): 'getter for uiImplementation: UIImplementation!' is deprecated. Deprecated in Java> Task :react-native-screens:compileDebugKotlinw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt: (77, 22): 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt: (64, 28): 'setter for targetElevation: Float' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt: (120, 28): 'setter for targetElevation: Float' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt: (21, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt: (69, 47): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt: (70, 15): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt: (89, 34): 'getter for systemWindowInsetTop: Int' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt: (237, 29): 'setColorFilter(Int, PorterDuff.Mode): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt: (63, 22): 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt: (108, 22): 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt: (117, 43): 'replaceSystemWindowInsets(Int, Int, Int, Int): WindowInsetsCompat' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt: (118, 47): 'getter for systemWindowInsetLeft: Int' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt: (120, 47): 'getter for systemWindowInsetRight: Int' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt: (121, 47): 'getter for systemWindowInsetBottom: Int' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt: (9, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt: (122, 47): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt: (123, 15): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt: (7, 51): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt: (17, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt: (18, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt: (7, 40): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt: (13, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt: (14, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt: (7, 43): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt: (13, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt: (14, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt: (7, 43): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt: (13, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt: (17, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt: (13, 5): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt: (22, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt: (27, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt: (7, 44): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt: (13, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt: (14, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt: (7, 47): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt: (13, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt: (14, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt: (5, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt: (7, 52): 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt: (13, 44): 'RCTEventEmitter' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt: (14, 25): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Javaw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt: (7, 42): Parameter 'width' is never usedw: /Users/junghanma/dev/aniwalk/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt: (7, 54): Parameter 'height' is never used> Task :react-native-seoul_kakao-login:compileDebugKotlinw: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (15, 27): Type mismatch: inferred type is Date? but Date was expectedw: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (94, 23): There is more than one label with such a name in this scopew: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (99, 23): There is more than one label with such a name in this scopew: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (102, 17): Condition 'token != null' is always 'true'w: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (118, 23): There is more than one label with such a name in this scopew: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (128, 23): There is more than one label with such a name in this scopew: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (131, 13): The expression is unusedw: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (140, 23): There is more than one label with such a name in this scopew: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (143, 13): The expression is unusedw: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (188, 53): Unnecessary non-null assertion (!!) on a non-null receiver of type Accountw: /Users/junghanma/dev/aniwalk/node_modules/@react-native-seoul/kakao-login/android/src/main/java/com/dooboolab/kakaologins/RNKakaoLoginsModule.kt: (194, 56): Unnecessary non-null assertion (!!) on a non-null receiver of type Account> Task :app:processDebugResources FAILEDDeprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.See https://docs.gradle.org/7.5.1/userguide/command_line_interface.html#sec:command_line_warnings87 actionable tasks: 82 executed, 5 up-to-dateFAILURE: Build completed with 2 failures.1: Task failed with an exception.-----------* What went wrong:Execution failed for task ':app:processDebugResources'.> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction> Android resource linking failed/Users/junghanma/dev/aniwalk/android/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml:14: error: unexpected element <activity> found in <manifest>.* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.==============================================================================2: Task failed with an exception.-----------* What went wrong:java.lang.StackOverflowError (no error message)* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.==============================================================================* Get more help at https://help.gradle.orgBUILD FAILED in 1m 33serror Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081FAILURE: Build completed with 2 failures.1: Task failed with an exception.-----------* What went wrong:Execution failed for task ':app:processDebugResources'.> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction> Android resource linking failed/Users/junghanma/dev/aniwalk/android/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml:14: error: unexpected element <activity> found in <manifest>.* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.==============================================================================2: Task failed with an exception.-----------* What went wrong:java.lang.StackOverflowError (no error message)* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.==============================================================================* Get more help at https://help.gradle.orgBUILD FAILED in 1m 33sat makeError (/Users/junghanma/dev/aniwalk/node_modules/execa/index.js:174:9)at /Users/junghanma/dev/aniwalk/node_modules/execa/index.js:278:16at processTicksAndRejections (node:internal/process/task_queues:96:5)at async runOnAllDevices (/Users/junghanma/dev/aniwalk/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:109:5)at async Command.handleAction (/Users/junghanma/dev/aniwalk/node_modules/@react-native-community/cli/build/index.js:142:9) 에러내용 .....패키지.js{ "name": "aniwalk", "version": "0.0.1", "private": true, "scripts": { "ad": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", "test": "jest", "lint": "eslint . --ext .js,.jsx,.ts,.tsx" }, "dependencies": { "@react-native-seoul/kakao-login": "^5.2.3", "@react-navigation/bottom-tabs": "^6.0.9", "@react-navigation/native": "^6.0.6", "@react-navigation/native-stack": "^6.2.5", "react": "18.1.0", "react-native": "0.70.1", "react-native-keyboard-aware-scroll-view": "^0.9.5", "react-native-responsive-screen": "^1.4.2", "react-native-safe-area-context": "^4.4.1", "react-native-screens": "^3.17.0", "react-native-swipe-list-view": "^3.2.9" }, "devDependencies": { "@babel/core": "^7.12.9", "@babel/runtime": "^7.12.5", "@react-native-community/eslint-config": "^2.0.0", "@tsconfig/react-native": "^2.0.2", "@types/jest": "^26.0.23", "@types/react-native": "^0.70.0", "@types/react-test-renderer": "^18.0.0", "@typescript-eslint/eslint-plugin": "^5.37.0", "@typescript-eslint/parser": "^5.37.0", "babel-jest": "^26.6.3", "eslint": "^7.32.0", "jest": "^26.6.3", "metro-react-native-babel-preset": "^0.72.1", "react-test-renderer": "18.1.0", "typescript": "^4.8.3" }, "jest": { "preset": "react-native", "moduleFileExtensions": [ "ts", "tsx", "js", "jsx", "json", "node" ] } } 그리들// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { buildToolsVersion = "31.0.0" minSdkVersion = 21 compileSdkVersion = 31 targetSdkVersion = 31 kotlinVersion = '1.5.10' if (System.properties['os.arch'] == "aarch64") { // For M1 Users we need to use the NDK 24 which added support for aarch64 ndkVersion = "24.0.8215888" } else { // Otherwise we default to the side-by-side NDK version from AGP. ndkVersion = "21.4.7075529" } } repositories { google() mavenCentral() } dependencies { classpath("com.android.tools.build:gradle:7.2.1") classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath("com.facebook.react:react-native-gradle-plugin") classpath("de.undercouch:gradle-download-task:5.0.1") // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { 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") } mavenCentral { // We don't want to fetch react-native from Maven Central as there are // older versions over there. content { excludeGroup "com.facebook.react" } } google() maven { url 'https://www.jitpack.io' } } } 그리들 프로퍼티스 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists 노드버전 v16.13.0이렇게해서 안드로이드 셋팅하는데 자꾸 코틀린모듈을 번들링되는게없다 뭐이런식으로 뜨길래1.3.41 , 1.5.10 1.6.2 버전다바꿔보고 빌드햇는데 안되네요...도와주세여...rn 0.70에 코틀린버전이 호환되는게 없어서 그런건지 vscode 문제에는 :Top-level build file where you can add configuration options common to all sub-projects/modules.
- 미해결배달앱 클론코딩 [with React Native]
번들 id 셋팅관련질문
카카오 플랫폼에서 번들 id 입력하라고 나오는데 번들아이디 꼭 com으로 바꿔서 셋팅해줘서 com.aniwalk 이런식으로 오게해야하나요 ?
- 미해결배달앱 클론코딩 [with React Native]
rn expo와 rn-cli에서의 소셜로그인 구현
혹시 react-native에서 간편로그인 구현하는것 (구글,카카오,애플,네이버) 등 expo랑 react-native-cli랑 모듈 셋팅은 똑같겟죠? (android , ios)혹시나 자료있으면 부탁드려도될까요 ?
- 미해결배달앱 클론코딩 [with React Native]
앱이 에뮬레이터에서 로드되지 않는 문제에 대한 질문 드립니다.
안녕하세요.강의를 수강하다가 질문을 드리게 되었습니다.안드로이드 스튜디오에서 넥서스 5를 띄우고 npm run android를 하면 메트로 서버에서 번들링이 된 후 앱이 구동되려다가 그냥 꺼집니다.혹시나 싶어서 안드로이드 스튜디오에서 해당 가상기기를 삭제 후에 다시 설치하여 진행 해보아도 동일한 문제를 계속 겪고 있습니다.이와 관련하여 어떻게 문제를 해결 할 수 있을까요?답변 부탁드리겠습니다.감사합니다.
- 미해결배달앱 클론코딩 [with React Native]
지도 현재 위치, 이미지가 보이지 않습니다.
아래 질문에서 유사한 문제가 있어서 답변 내용처럼 했는데 해결이 안되고 있습니다!- pod에서 네이버지도 3.10.0을 설치 -> 완료- 해외로 찍혀있는 것은 아닌지? -> 거리함수로 확인해보니 해외로 찍혀있을 수 있을 것 같습니다.이 경우에 현재 위치로 돌릴 수 있는 방법이 있을까요? myLocation 옵션 true로 추가해서 확인해도 옮겨지지가 않습니다. 추가로 확인해봐야하는 부분이 있을까요?
- 미해결배달앱 클론코딩 [with React Native]
build.gradle, proguard-rules.pro 파일 수정 후 발생한 에러 로 어려움을 겪고 있습니다.
상황 안녕하세요. 제로초님! 'react-native-config 문제 해결하기' 강의 내용대로 build.gradle, proguard-rules.pro 파일을 수정하고 안드로이트 스튜디오에서 BuildConfig파일에 API_URL가 잘 뜨는 것까지 확인하고 npm run android를 입력했는데 메트로 서버에서 에러가 나타나고 emulator는 빈 화면만 보여주고 있습니다. 에러 메트로 서버 에러 내용 WARN The native module for Flipper seems unavailable. Please verify that react-native-flipper is installed as yarn dependency to your project and, for iOS, that pod install is run in the ios directory. ERROR TypeError: Restricted in strict mode, js engine: hermes ERROR Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication(). Module has not been registered as callable. Registered callable JavaScript modules (n = 11): Systrace, JSTimers, HeapCapture, SamplingProfiler, RCTLog, RCTDeviceEventEmitter, RCTNativeAppEventEmitter, GlobalPerformanceLogger, JSDevSupportModule, HMRClient, RCTEventEmitter. A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermes ERROR Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication(). Module has not been registered as callable. Registered callable JavaScript modules (n = 11): Systrace, JSTimers, HeapCapture, SamplingProfiler, RCTLog, RCTDeviceEventEmitter, RCTNativeAppEventEmitter, GlobalPerformanceLogger, JSDevSupportModule, HMRClient, RCTEventEmitter. A frequent cause of the error is that the application entry file path is incorrect. This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native., js engine: hermesemulator 코드 android\app\build.gradleapply plugin: "com.android.application" apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" import com.android.build.OutputFile import org.apache.tools.ant.taskdefs.condition.Os /** * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets * and bundleReleaseJsAndAssets). * These basically call `react-native bundle` with the correct arguments during the Android build * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the * bundle directly from the development server. Below you can see all the possible configurations * and their defaults. If you decide to add a configuration block, make sure to add it before the * `apply from: "../../node_modules/react-native/react.gradle"` line. * * project.ext.react = [ * // the name of the generated asset file containing your JS bundle * bundleAssetName: "index.android.bundle", * * // the entry file for bundle generation. If none specified and * // "index.android.js" exists, it will be used. Otherwise "index.js" is * // default. Can be overridden with ENTRY_FILE environment variable. * entryFile: "index.android.js", * * // https://reactnative.dev/docs/performance#enable-the-ram-format * bundleCommand: "ram-bundle", * * // whether to bundle JS and assets in debug mode * bundleInDebug: false, * * // whether to bundle JS and assets in release mode * bundleInRelease: true, * * // whether to bundle JS and assets in another build variant (if configured). * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants * // The configuration property can be in the following formats * // 'bundleIn${productFlavor}${buildType}' * // 'bundleIn${buildType}' * // bundleInFreeDebug: true, * // bundleInPaidRelease: true, * // bundleInBeta: true, * * // whether to disable dev mode in custom build variants (by default only disabled in release) * // for example: to disable dev mode in the staging build type (if configured) * devDisabledInStaging: true, * // The configuration property can be in the following formats * // 'devDisabledIn${productFlavor}${buildType}' * // 'devDisabledIn${buildType}' * * // the root of your project, i.e. where "package.json" lives * root: "../../", * * // where to put the JS bundle asset in debug mode * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", * * // where to put the JS bundle asset in release mode * jsBundleDirRelease: "$buildDir/intermediates/assets/release", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require('./image.png')), in debug mode * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require('./image.png')), in release mode * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", * * // by default the gradle tasks are skipped if none of the JS files or assets change; this means * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to * // date; if you have any other folders that you want to ignore for performance reasons (gradle * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ * // for example, you might want to remove it from here. * inputExcludes: ["android/**", "ios/**"], * * // override which node gets called and with what additional arguments * nodeExecutableAndArgs: ["node"], * * // supply additional arguments to the packager * extraPackagerArgs: [] * ] */ project.ext.react = [ enableHermes: true, // clean and rebuild if changing ] apply from: "../../node_modules/react-native/react.gradle" /** * Set this to true to create two separate APKs instead of one: * - An APK that only works on ARM devices * - An APK that only works on x86 devices * The advantage is the size of the APK is reduced by about 4MB. * Upload all the APKs to the Play Store and people will download * the correct one based on the CPU architecture of their device. */ def enableSeparateBuildPerCPUArchitecture = false /** * Run Proguard to shrink the Java bytecode in release builds. */ def enableProguardInReleaseBuilds = false /** * The preferred build flavor of JavaScriptCore. * * For example, to use the international variant, you can use: * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` * * The international variant includes ICU i18n library and necessary data * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that * give correct results when using with locales other than en-US. Note that * this variant is about 6MiB larger per architecture than default. */ def jscFlavor = 'org.webkit:android-jsc:+' /** * Whether to enable the Hermes VM. * * This should be set on project.ext.react and that value will be read here. If it is not set * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode * and the benefits of using Hermes will therefore be sharply reduced. */ def enableHermes = project.ext.react.get("enableHermes", false); /** * Architectures to build native code for. */ def reactNativeArchitectures() { def value = project.getProperties().get("reactNativeArchitectures") return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] } android { ndkVersion rootProject.ext.ndkVersion compileSdkVersion rootProject.ext.compileSdkVersion defaultConfig { applicationId "com.fooddeliveryapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() resValue "string", "build_config_package", "com.fooddeliveryapp" if (isNewArchitectureEnabled()) { // We configure the CMake build only if you decide to opt-in for the New Architecture. externalNativeBuild { cmake { arguments "-DPROJECT_BUILD_DIR=$buildDir", "-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", "-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", "-DNODE_MODULES_DIR=$rootDir/../node_modules", "-DANDROID_STL=c++_shared" } } if (!enableSeparateBuildPerCPUArchitecture) { ndk { abiFilters (*reactNativeArchitectures()) } } } } if (isNewArchitectureEnabled()) { // We configure the NDK build only if you decide to opt-in for the New Architecture. externalNativeBuild { cmake { path "$projectDir/src/main/jni/CMakeLists.txt" } } def reactAndroidProjectDir = project(':ReactAndroid').projectDir def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") into("$buildDir/react-ndk/exported") } def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") into("$buildDir/react-ndk/exported") } afterEvaluate { // If you wish to add a custom TurboModule or component locally, // you should uncomment this line. // preBuild.dependsOn("generateCodegenArtifactsFromSchema") preDebugBuild.dependsOn(packageReactNdkDebugLibs) preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) // Due to a bug inside AGP, we have to explicitly set a dependency // between configureCMakeDebug* tasks and the preBuild tasks. // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild) configureCMakeDebug.dependsOn(preDebugBuild) reactNativeArchitectures().each { architecture -> tasks.findByName("configureCMakeDebug[${architecture}]")?.configure { dependsOn("preDebugBuild") } tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure { dependsOn("preReleaseBuild") } } } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include (*reactNativeArchitectures()) } } signingConfigs { debug { storeFile file('debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' } } buildTypes { debug { signingConfig signingConfigs.debug } release { // Caution! In production, you need to generate your own keystore file. // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.debug minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } // applicationVariants are e.g. debug, release applicationVariants.all { variant -> variant.outputs.each { output -> // For each separate APK per architecture, set a unique version code as described here: // https://developer.android.com/studio/build/configure-apk-splits.html // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = defaultConfig.versionCode * 1000 + versionCodes.get(abi) } } } } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) //noinspection GradleDynamicVersion implementation "com.facebook.react:react-native:+" // From node_modules implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { exclude group:'com.facebook.fbjni' } debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { exclude group:'com.facebook.flipper' exclude group:'com.squareup.okhttp3', module:'okhttp' } debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { exclude group:'com.facebook.flipper' } if (enableHermes) { //noinspection GradleDynamicVersion implementation("com.facebook.react:hermes-engine:+") { // From node_modules exclude group:'com.facebook.fbjni' } } else { implementation jscFlavor } } if (isNewArchitectureEnabled()) { // If new architecture is enabled, we let you build RN from source // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. // This will be applied to all the imported transtitive dependency. configurations.all { resolutionStrategy.dependencySubstitution { substitute(module("com.facebook.react:react-native")) .using(project(":ReactAndroid")) .because("On New Architecture we're building React Native from source") substitute(module("com.facebook.react:hermes-engine")) .using(project(":ReactAndroid:hermes-engine")) .because("On New Architecture we're building Hermes from source") } } } // Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { from configurations.implementation into 'libs' } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) def isNewArchitectureEnabled() { // To opt-in for the New Architecture, you can either: // - Set `newArchEnabled` to true inside the `gradle.properties` file // - Invoke gradle with `-newArchEnabled=true` // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" } android\app\proguard-rules.pro# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the proguardFiles # directive in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: -keep class com.fooddeliveryapp.BuildConfig { *; } Android Studio (BuildConfig에 public static final String API_URL 생성됨)src/pages/SignUp.tsximport React, {useCallback, useRef, useState} from 'react'; import { ActivityIndicator, Alert, Platform, Pressable, StyleSheet, Text, TextInput, View, } from 'react-native'; import {NativeStackScreenProps} from '@react-navigation/native-stack'; import {RootStackParamList} from '../../AppInner'; import DismissKeyboardView from '../components/DissmissKeyboardView'; import axios, {AxiosError} from 'axios'; import Config from 'react-native-config'; type SignUpScreenProps = NativeStackScreenProps<RootStackParamList, 'SignUp'>; function SignUp({navigation}: SignUpScreenProps) { const [loading, setLoading] = useState(false); const [email, setEmail] = useState(''); const [name, setName] = useState(''); const [password, setPassword] = useState(''); const emailRef = useRef<TextInput | null>(null); const nameRef = useRef<TextInput | null>(null); const passwordRef = useRef<TextInput | null>(null); const onChangeEmail = useCallback(text => { setEmail(text.trim()); // 스페이스바 입력못하게 미리 방지 }, []); const onChangeName = useCallback(text => { setName(text.trim()); }, []); const onChangePassword = useCallback(text => { setPassword(text.trim()); }, []); const onSubmit = useCallback(async () => { // 로딩 중일 때 회원가입 버튼 또 누르면 return해서 막기 if (loading) { return; } if (!email || !email.trim()) { return Alert.alert('알림', '이메일을 입력해주세요.'); } if (!name || !name.trim()) { return Alert.alert('알림', '이름을 입력해주세요.'); } if (!password || !password.trim()) { return Alert.alert('알림', '비밀번호를 입력해주세요.'); } if ( !/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/.test( email, ) ) { return Alert.alert('알림', '올바른 이메일 주소가 아닙니다.'); } if (!/^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[$@^!%*#?&]).{8,50}$/.test(password)) { return Alert.alert( '알림', '비밀번호는 영문,숫자,특수문자($@^!%*#?&)를 모두 포함하여 8자 이상 입력해야합니다.', ); } console.log(email, name, password); // 서버에 요청하기 try { // 로딩 상태 setLoading(true); console.log(Config.API_URL); const response = await axios.post(`${Config.API_URL}/user`, { email, name, password, }); console.log(response); Alert.alert('알림', '회원가입되었습니다'); } catch (error) { // 네트워크 에러 타입 지정 // const errorResponse = (error as AxiosError).response; console.error(error); // if (errorResponse) { // Alert.alert('알림', errorResponse.data.message); // } } finally { // 성공하든 실패하든 로딩 상태 변경 setLoading(false); } Alert.alert('알림', '회원가입 되었습니다.'); }, [email, name, password]); const canGoNext = email && name && password; return ( <DismissKeyboardView> <View style={styles.inputWrapper}> <Text style={styles.label}>이메일</Text> <TextInput style={styles.textInput} onChangeText={onChangeEmail} placeholder="이메일을 입력해주세요" placeholderTextColor="#666" textContentType="emailAddress" value={email} returnKeyType="next" clearButtonMode="while-editing" keyboardType="email-address" ref={emailRef} onSubmitEditing={() => nameRef.current?.focus()} blurOnSubmit={false} /> </View> <View style={styles.inputWrapper}> <Text style={styles.label}>이름</Text> <TextInput style={styles.textInput} placeholder="이름을 입력해주세요." placeholderTextColor="#666" onChangeText={onChangeName} value={name} textContentType="name" returnKeyType="next" clearButtonMode="while-editing" ref={nameRef} onSubmitEditing={() => passwordRef.current?.focus()} blurOnSubmit={false} /> </View> <View style={styles.inputWrapper}> <Text style={styles.label}>비밀번호</Text> <TextInput style={styles.textInput} placeholder="비밀번호를 입력해주세요(영문,숫자,특수문자)" placeholderTextColor="#666" onChangeText={onChangePassword} value={password} keyboardType={Platform.OS === 'android' ? 'default' : 'ascii-capable'} textContentType="password" secureTextEntry returnKeyType="send" clearButtonMode="while-editing" ref={passwordRef} onSubmitEditing={onSubmit} /> </View> <View style={styles.buttonZone}> <Pressable style={ canGoNext ? StyleSheet.compose(styles.loginButton, styles.loginButtonActive) : styles.loginButton } // 로딩 중일 때는 회원가입 버튼 클릭못하게 막기 disabled={!canGoNext || loading} onPress={onSubmit}> {/* 로딩 중일 때, indicator 보여주기 */} {loading ? ( <ActivityIndicator color="white" /> ) : ( <Text style={styles.loginButtonText}>회원가입</Text> )} </Pressable> </View> </DismissKeyboardView> ); } const styles = StyleSheet.create({ textInput: { padding: 5, borderBottomWidth: StyleSheet.hairlineWidth, }, inputWrapper: { padding: 20, }, label: { fontWeight: 'bold', fontSize: 16, marginBottom: 20, }, buttonZone: { alignItems: 'center', }, loginButton: { backgroundColor: 'gray', paddingHorizontal: 20, paddingVertical: 10, borderRadius: 5, marginBottom: 10, }, loginButtonActive: { backgroundColor: 'blue', }, loginButtonText: { color: 'white', fontSize: 16, }, }); export default SignUp; .envAPI_URL=http://10.0.2.2:3105 에러 해결을 위해 시도해본 것emulator 삭제 및 새로 생성 - 효과 x build.gradle, proguard-rules.pro 파일의 내용 원상복귀 - 효과 x 에러 내용 중 일부(Invariant Violation: Failed to call into JavaScript module method AppRegistry.runApplication()) 구글링하여 얻은 정보로 npm start --reset-cache 입력 - 효과 x vscode 포함 모든 프로그램 종료 후 재실행 - 효과 x 어떻게 해결해야할지 모르겠습니다..!