2025. 1. 30. 17:56ㆍ현 프로젝트 준비단계
소요 시간
2025년 1월 25일 ~ 2025년 1월30일
= 밥먹는 시간 제외하고 이거만해서 5일 소요
느낀점
빌드에서 나오는 오류, 의존성 관계에 대해서 플러터가 오류가 많더라는 걸 직접
경험해보니까 알겠다.
일단 네이버 맵 api를 추가하려고 했던 짓
컴퓨터초기화 10번 이상, 안드로이드 버전 변경 4번 , 플러터 2.x ~3.x 다 다운, 환경변수 수십 번 변경
gradle 버전 맞추기 agp 버전 바꾸기 , 코틀린 버전 맞추기 등 다도전 해봐서
결국 해냈다. 근데 사실 플러그인 자체에 이슈였는데
나는 플러터에 대한 지식이 없으니까 하나하나 뜯어보면서 내 실수인 줄 알고
폴더 하나하나 수정해 가면서 빌드오류를 경험해 봤다.
누가 보면 삽질이라고 할 수 있는데 나는 이 오류 덕분에 진짜 많이 성장했다.
하지만 시간낭비도 많이 했기 때문에
다른 분들은 한 번에 해결했으면 좋겠어서 글을 남긴다.
안드로이드 스튜디오 버전
기본적으로 이거 이슈있으면 싹 다 오류나니까 무조건 확인해야됨
최신버전은 git부터 다 자동으로해주던데 구버전하니까 안해줌요..
중간에 hyper- v 같은 경우에는
이걸로 대체
현 버전중 최신버전이용
flutter_naver_map: ^1.3.0+1
자바 버전 - jdk17
gradle 버전 -
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
flutter 버전 -
Flutter 3.27.3 • channel stable
Framework • revision c519 ee916 e (9 days ago) • 2025-01-21 10:32:23 -0800
Engine • revision e672 b006 cb
Tools • Dart 3.6.1 • DevTools 2.40.2
수정한 파일
android build 파일
buildscript {
ext.kotlin_version = '1.9.0' // Kotlin 버전 설정 (1.7.x 버전으로 설정)
repositories {
google()
mavenCentral()
// 네이버 지도 SDK Maven 저장소 추가
maven {
url 'https://repository.map.naver.com/archive/maven'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.0' // 최신 안정 Gradle 플러그인
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Kotlin 플러그인
}
}
allprojects {
repositories {
google()
mavenCentral()
// 네이버 지도 SDK Maven 저장소 추가
maven {
url 'https://repository.map.naver.com/archive/maven'
}
}
}
rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(":app")
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
app build gradle 파일
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
android {
namespace = "com.holy.untitled.untitled"
compileSdk 34
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId = "com.holy.untitled.untitled"
minSdkVersion 23
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
buildTypes {
release {
signingConfig = signingConfigs.debug
}
}
}
flutter {
source = "../.."
}
dependencies {
implementation 'com.naver.maps:map-sdk:3.20.0'
}
gradle.properties
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
android.nonTransitiveRClass=false <<< 추가
setting 파일
pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}()
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
main / src / main
<meta-data
android:name="com.naver.maps.map.CLIENT_ID"
android:value="인증코드" />
내 코드
import 'package:flutter/material.dart';
import 'package:flutter_naver_map/flutter_naver_map.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized(); // Flutter 엔진 초기화
await NaverMapSdk.instance.initialize( // 네이버 지도 초기화
clientId: '111111',
onAuthFailed: (ex) {
print("********* 네이버맵 인증오류 : $ex *********");
},
);
runApp(MyApp()); // 앱 실행
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Naver Map Example')),
body: NaverMap(), // 네이버 지도 표시
),
);
}
}
대체 그럼 무슨 오류였나?
flutter_naver_map-1.3.0+1/android/src/main/kotlin/dev/note11/flutter_naver_map/flutter_naver_map/view/NaverMapView.kt:134:29 Unresolved reference: style
이거 나는 빌드에 대한 개념 자체가 없으니까 그냥 내문제 인줄 알았는데
플러그인에서 버전 문제로 style이 문제가 나는거다. 그래서 사실상 플러그인 자체에서 오류가 나는거였다.
고치기 위해서 github issue를 활용하여 해결하였다.
참고사이트
https://github.com/note11g/flutter_naver_map/issues/279
https://github.com/note11g/flutter_naver_map/issues/225 핵심적으로 도움된 두글 역시 이슈보는게 최고다
'현 프로젝트 준비단계' 카테고리의 다른 글
6. Supabase 정보를 불러와 지도에 마커를 추가하는 기능 구현 (0) | 2025.02.03 |
---|---|
5. flutter 네이버 지역 API를 이용한 검색 기능 구현 (0) | 2025.02.03 |
4. Supabase 연결 연습 (0) | 2025.02.01 |
3. flutter provider 상태관리 , 화면에 따른 바텀바 제작 (0) | 2025.02.01 |
1. 시작하기 앞서 (0) | 2025.01.20 |