์บก์คํค ํ๋ก์ ํธ๋ฅผ ์ํด React Native ํ๋ก์ ํธ ์ธํ ์ ์งํํ๋ ์ค ์์ฒญ๋๊ฒ ๊ธด ์ค๋ฅ๋ค์ ๋ง๋ฌ์๋ค.. ๊ตฌ๊ธ๋ง์ผ๋ก๋ ํด๊ฒฐ์ด ์ ์๋๋ ๊ฒ๋ค์ด ๋ง์ ํด๊ฒฐ์ฑ ์ ์ฐพ๋๋ฐ ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ง๋ง, ์ด์ฐ์ ์ฐ ํด๊ฒฐ ์๋ฃ!
(์ญ์ ์
๋ช
๋์ RN.......)
๋๊ตฐ๊ฐ์๊ฒ ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋๊ธธ ์๋งํ๋ฉฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ๋ ค๋ณธ๋ค.
0. ์ฐธ๊ณ
๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ๊ธ์ ์ฐธ์กฐํ์ฌ ์งํํ์์ต๋๋ค. ์ด ๊ธ์์๋ ์๋ ๊ธ๊ณผ ๋ค๋ฅด๊ฒ ์ค์ ํ ๊ฒ์ ์์ฃผ๋ก ์ค๋ช ํ ์์ ์ ๋๋ค.
[React Native] ํ๋ก์ ํธ ์ด๊ธฐ์ธํ
React Native + Typescript + Styled Component ์ด๊ธฐ์ธํ
velog.io
1. react navigation ์ค์น
react navigation์ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ๋์ ์ฌ์ฉํด์ผํ๋ ์ด์ ๋ ์ด ๊ธ์ ์ฐธ๊ณ ํ์.
๋๋ RN v0.75๋ฅผ ์ฌ์ฉํ๋ฏ๋ก MainActivity.java๊ฐ ์๋ MainActivity.kt ํ์ผ์ด ์์๊ณ , ๊ณต์ ํํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์ ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
2. styled-components ์ค์น
styled-components๋ normal CSS ์ฝ๋๋ฅผ Native Component๊ฐ ์ฌ์ฉํด๋ ์คํ์ผ ์ ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ํด์ค๋ค. ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ์ด ๊ธ์ ์ฐธ๊ณ ํ์.
์๋ ์์์ ๋ฐ๋ผ ์ถ๊ฐ๋ก ํ์ํ ์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ์๋ค.
1. style-component ์ค์น
- npm install styled-components
2. babel plugin ์ค์น
- npm install --save-dev babel-plugin-styled-components
- (babel.config.js์ ์ถ๊ฐ) "plugins": ["babel-plugin-styled-components"]
3. (ts ์ฌ์ฉ ์) typescript plugin ์ค์น
- npm install --save @types/styled-components @types/styled-components-react-native
๐ฅ react-native-screens ๋ฒ์ ์ค๋ฅ
์ค๋ ๋ ๋ง์์ผ๋ก npx react-native run-android ์ํฐ!!๋ฅผ ์ ๋ ฅํ์ง๋ง.. ๋์์ค๋๊ฑด ๊ฒ๋๊ฒ๋ ๊ธด ์๋ฌ์ฝ๋...ใ
์ผ๋จ ๊ทธ ์ค ํ๋์ ์์ธ์ react-native-screens ๋ฒ์ ๊ณผ ๊ด๋ จ๋ ์ค๋ฅ์๋ค.
("> Task :react-native-screens:configureCMakeDebug[arm64-v8a] FAILED" ๋ฑ๋ฑ...)
๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ์๋ ์ด์๊ฐ ๋๋ ์์ ํ ๋๊ฐ์ ์ค๋ฅ์ ๋ํ ๋ด์ฉ์ด์๋ค!
Android Build Error - Execution failed for task ':react-native-screens:configureCMakeRelWithDebInfo' · Issue #2082 · software-
Description When assembling a dev release build on android I get a build error. Error shown is : What went wrong: Execution failed for task ':react-native-screens:configureCMakeRelWithDebInfo'. [CX...
github.com
(์์ฝํ๋ฉด RN ๋ฒ์ ๊ณผ react-native-screens ๋ฒ์ ์ ํธํ์ฑ์ ์ด ํ๋ฅผ ๋ณด๊ณ ํ์ธํ์ฌ ์์ ํ๋ผ๋ ๊ฒ)
๊ทธ๋ฐ๋ฐ ๋๋ ๋ ๋ฒ์ ์ด ์๋ก ํธํ๋๋ค๊ณ ๋์์์์๋ ๋ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์ ๊ธ์ ๋ต๋ณ ์ค react-native-screens ๋ฒ์ ์ "3.29.0"๋ก ๋ฐ๊พธ๋ฉด ๋๋ค๋ ๋ง์ด ๋ง๊ธธ๋ ๋ฒ์ ์ ๋ณ๊ฒฝํด๋ดค๋๋ฐ! ํด๊ฒฐ๋์๋ค!
์ฆ, ์๋์ ๊ฐ์ด react-native-screens ๋ฒ์ ์ ๋ค์ด๊ทธ๋ ์ด๋ํ๋ฉด ํด๊ฒฐ๋ ๊ฒ์ด๋ค.
1. ์ด๋ฏธ ์ค์นํ์๋ค๋ฉด ์ญ์
- npm uninstall react-native-screens
2. 3.29.0 ๋ฒ์ ์ผ๋ก ์ฌ์ค์น
- npm install react-native-screens@3.29.0
๐ฅ react-native-screens ScreenViewManager.kt ์ค๋ฅ
"e: file:///D:/AReumApp/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt:47:74 This function must return a value of type Any?" ์ ๊ฐ์ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๋ง๋ฌ๋ค..
node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt ์์ 47๋ฒ์งธ ์ค์ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
- view.fabricViewStateManager?.setStateWrapper(stateWrapper ?: return null)
๐ฅ CMake ๋ฐ NDK ๊ด๋ จ ์ค๋ฅ
๊ทธ๋ฆฌ๊ณ CMake์ NDK๊ฐ ์ค์น๋์ด ์์ง ์์ CMake ์ด์ฉ๊ตฌ ๋ฑ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด์๋ค. ์ด๋ค์ ์ค์นํ๊ธฐ ์ํด์๋ ์๋ ๊ณผ์ ์ ๋ฐ๋ผํ๋ฉด ๋๋ค.
1. Android Studio์์ ํด๋น ํ๋ก์ ํธ๋ฅผ ์ฐ๋ค.
2. Sdk Manager์์ CMake์ NDK๋ฅผ ์ค์นํ๋ค.
3. ํ๊ฒฝ๋ณ์>์์คํ ๋ณ์>Path ์ CMake์ bin ํด๋ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ๋ค. (NDK๋ ์ค์ ์ ํด๋ ๋จ)
๐ฅ AndroidManifest ํ์ผ ์์
"> Task :react-native-safe-area-context:processDebugManifest package="com.th3rdwave.safeareacontext" found in source AndroidManifest.xml: D:\AReumApp\node_modules\react-native-safe-area-context\android\src\main\AndroidManifest.xml. Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported, and the value is ignored. Recommendation: remove package="com.th3rdwave.safeareacontext" from the source AndroidManifest.xml: D:\AReumApp\node_modules\react-native-safe-area-context\android\src\main\AndroidManifest.xml." ์ ๊ฐ์ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๋ง๋ฌ๋ค.
๊ฐ ๋ชจ๋์ AndroidManifest.xml ํ์ผ์์ package ์์ฑ์ ์ ๊ฑฐํ๋ฉด ํด๊ฒฐ๋๋ค.
๋๋ ์ ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ react-native-safe-area-context, react-native-screen ๋ ๋ชจ๋์์ ๋ฐ์ํด์, node_modules\{๋ชจ๋ ๋ช }\android\src\main\AndroidManifest.xml ํ์ผ์์ ๊ฐ๊ฐ ์๋์ ์ฝ๋๋ฅผ ์ฐพ์ ์ ๊ฑฐํ์๋ค.
- package=”com.th3rdwave.safeareacontext”
- package=”com.swmansion.rnscreens”
๐ฉ ์ถ๊ฐ ํ
์ค์ ๊ด๋ จ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๊ฑด๋๋ฆด ๋๋ง๋ค ์บ์ ์ญ์ ํ ์๋กญ๊ฒ ๋น๋ํ๋ ๊ฒ์ด ์ข๋ค.. ํน์ ๋ชจ๋ฅผ ๋ฌธ์ ๋ฐ์ ๋ฐฉ์ง๋ฅผ ์ํด์...
Window ๊ธฐ์ค์ผ๋ก,
1. cd android
2. gradlew clean
3. cd ..
4. npx react-native run-android
๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค :)