강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dongh81.kim님의 프로필 이미지
dongh81.kim

작성한 질문수

[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)

[1-3] 맥-Android 환경 설정

아 이만 포기할까 합니다.. 안드로이드쪽 문제.

해결된 질문

작성

·

170

0

다들 비슷하시군요. ㅋㅋ 지도 띄우는 부분까지 와서 ios 는 경우겨우 의존성 처리해서 구동시켰는데 이번엔 안드로이드가 안되는군요.

참고로 라이브러리버전은 다음과 같습니다.

강의 내용은 맘에 드는데, 버전 문제 등으로 너무 진행이 뎌뎌서 이만 포기할까 합니다.. 너무 시간이 뺏기네요

이거 안되면 ..그냥 플투터로 넘어갈까 합니다..

이래저래 버전문제 처리해서 구동시켰는데 앱 실행하자마자 꺼지네요.

wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

build.gradle

buildscript {
    ext {
        buildToolsVersion = "34.0.0"
        minSdkVersion = 24
        compileSdkVersion = 34
        targetSdkVersion = 34
        ndkVersion = "25.2.9519653" // 또는 사용 중인 NDK 버전
        kotlinVersion = "1.9.10"
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:8.1.0")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
        classpath("com.facebook.react:react-native-gradle-plugin")
    }
}
allprojects {
    repositories {
        mavenCentral()
        google()
    }
  tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "17"
        }
    }

    tasks.withType(JavaCompile).configureEach {
        options.release = 17
    }
    
}
subprojects {
    afterEvaluate { project ->
        if (project.plugins.hasPlugin("com.android.library") || project.plugins.hasPlugin("com.android.application")) {
            project.android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion

                defaultConfig {
                    minSdkVersion rootProject.ext.minSdkVersion
                    targetSdkVersion rootProject.ext.targetSdkVersion
                    ndkVersion rootProject.ext.ndkVersion
                }

                compileOptions {
                    sourceCompatibility JavaVersion.VERSION_17
                    targetCompatibility JavaVersion.VERSION_17
                }

                // ✅ Kotlin 적용 프로젝트에서만 실행
                if (project.plugins.hasPlugin("kotlin-android")) {
                    kotlinOptions {
                        jvmTarget = "17"
                    }
                    kotlin {
                        jvmToolchain(17)
                    }
                }
            }
        }
    }
}   
 "dependencies": {
    "@react-native-community/geolocation": "^3.1.0",
    "@react-native-community/slider": "^4.5.0",
    "@react-native-masked-view/masked-view": "^0.3.0",
    "@react-navigation/bottom-tabs": "^6.5.11",
    "@react-navigation/drawer": "^6.6.6",
    "@react-navigation/native": "^6.1.9",
    "@react-navigation/stack": "^6.3.20",
    "@tanstack/react-query": "^5.8.7",
    "axios": "^1.6.2",
    "patch-package": "^8.0.0",
    "postinstall-postinstall": "^2.1.0",
    "react": "18.2.0",
    "react-native": "^0.72.0",
    "react-native-config": "^1.5.1",
    "react-native-date-picker": "^4.3.5",
    "react-native-encrypted-storage": "^4.0.3",
    "react-native-gesture-handler": "2.12.0",
    "react-native-image-crop-picker": "^0.40.2",
    "react-native-maps": "1.15.0",
    "react-native-permissions": "^4.0.1",
    "react-native-reanimated": "3.5.4",
    "react-native-safe-area-context": "^4.7.4",
    "react-native-screens": "3.29.0",
    "react-native-toast-message": "^2.2.0",
    "react-native-vector-icons": "^10.0.3",
    "zustand": "^4.5.0"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/plugin-transform-private-methods": "^7.27.1",
    "@babel/preset-env": "^7.20.0",
    "@babel/runtime": "^7.20.0",
    "@react-native/eslint-config": "^0.72.2",
    "@react-native/metro-config": "^0.72.11",
    "@tsconfig/react-native": "^3.0.0",
    "@types/react": "^18.0.24",
    "@types/react-native-vector-icons": "^6.4.18",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.2.1",
    "babel-plugin-module-resolver": "^5.0.0",
    "eslint": "^8.19.0",
    "jest": "^29.2.1",
    "metro-react-native-babel-preset": "0.76.9",
    "prettier": "^2.4.1",
    "react-test-renderer": "18.2.0",
    "typescript": "4.8.4"
  },
  "engines": {
    "node": ">=16"
  }

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. dongh81.kim님, Android 환경에서의 빌드 및 실행 문제 때문에 많은 고민과 시간을 투자하고 계신 것 같아 안타깝습니다.

Android에서의 빌드 및 실행 문제는 주로 의존성 버전 간의 호환성 문제 또는 환경 설정 문제에서 기인합니다. 주어진 정보로 몇 가지 해결 방안을 제안드리겠습니다.

  1. React Native 및 Gradle 버전 확인:

    • react-native와 사용 중이신 gradle, android build tools 버전을 확인하세요. 신규 버전들이 서로 호환되지 않는 경우가 있습니다.
    • gradle-wrapper.properties 에서 사용하는 gradle 버전을 7.x.x로 낮추어 실험해보세요. 호환성 이슈가 있을 수 있습니다.
  2. react-native-maps 및 애드온 설정 확인:

    • react-native-maps와 같은 라이브러리는 버전에 민감하여 다른 패키지와 충돌을 일으킬 수 있습니다. 이를 해결하는 데 도움이 될 프로젝트 설정을 확인해보세요.
  3. NDK 및 SDK 설정:

    • ndkVersion과 관련하여, 명시된 버전이 맞는지 확인하고, 해당 버전의 NDK가 설치되어 있는지도 확인해보세요. NDK 설정 가이드를 참고하여 NDK 설정을 다시 확인하시기 바랍니다.
  4. 환경 변수 및 경로 설정:

    • 프로젝트 내에서 올바른 SDK 및 NDK 경로가 설정되어 있는지 local.properties 파일을 확인하고 경로가 올바른지 확인하세요.
  5. 별도의 빌드 및 캐시 정리:

    • ./gradlew clean 명령어를 통해 Gradle 캐시를 정리한 후 다시 빌드해보세요.
    • node_modules 폴더를 삭제하고 yarn install을 통해 다시 패키지를 설치해 보세요.
  6. 해당 문제와 유사한 사례 참고:

이 중에서 적합한 방법을 시도해보고, 문제가 해결되지 않더라도 포기하지 마세요. React Native는 초기 설정이 까다로울 수 있지만, 설정이 완료되면 개발이 훨씬 수월해집니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dongh81.kim님의 프로필 이미지
dongh81.kim

작성한 질문수

질문하기