Flutter-geolocator: ๋‚ด ์•ฑ์—์„œ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 04์›” 07์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Baseflow/flutter-geolocator

๐Ÿ› ๋ฒ„๊ทธ ์‹ ๊ณ 

๋‚ด ์•ฑ์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. pubspec.yaml์—์„œ "geolocator: ^5.3.1"์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ์„ ์ง์ ‘ ์—ด๊ณ  ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” "location_permissions" ํŒจํ‚ค์ง€์˜ ์†Œ์Šค์™€ ํ•จ๊ป˜ ์†Œ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. . ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด Android ์•ฑ์— ์ถ”๊ฐ€ํ•˜๋ฉด ์ด๊ฒƒ์„ ์–ป์Šต๋‹ˆ๋‹ค.

location_permissions ํŒจํ‚ค์ง€ ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ์ผ์ข…์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

F:_WORK_FLUTTERflutter-permission-plugins-developpackageslocation_permissionsandroidsrcmainjavacombaseflowlocation_permissionsLocationPermissionsPlugin.java:284: ์˜ค๋ฅ˜: ๊ธฐํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
|| (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && permission.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION));
^^
๊ธฐํ˜ธ: ๋ณ€์ˆ˜ Q
์œ„์น˜: ํด๋ž˜์Šค VERSION_CODES
F:_WORK_FLUTTERflutter-permission-plugins-developpackageslocation_permissionsandroidsrcmainjavacombaseflowlocation_permissionsLocationPermissionsPlugin.java:284: ์˜ค๋ฅ˜: ๊ธฐํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
|| (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && permission.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION));
^^
๊ธฐํ˜ธ: ๋ณ€์ˆ˜ ACCESS_BACKGROUND_LOCATION
์œ„์น˜: ํด๋ž˜์Šค ๊ถŒํ•œ
F:_WORK_FLUTTERflutter-permission-plugins-developpackageslocation_permissionsandroidsrcmainjavacombaseflowlocation_permissionsLocationPermissionsPlugin.java:310: ์˜ค๋ฅ˜: ๊ธฐํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && hasPermissionInManifest(Manifest.permission.ACCESS_BACKGROUND_LOCATION, ์ปจํ…์ŠคํŠธ)) {
^^
๊ธฐํ˜ธ: ๋ณ€์ˆ˜ Q
์œ„์น˜: ํด๋ž˜์Šค VERSION_CODES

๊ตฌ์„ฑ

๋‚ด build.gradle ๋ณ€๊ฒฝ

์•ˆ๋“œ๋กœ์ด๋“œ {
compileSdk๋ฒ„์ „ 29

AndroidX๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐ™์€ ์˜ค๋ฅ˜.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ฃจํŠธ build.gradle ์•ˆ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

ext {
    compileSdkVersion = 29
}

subprojects { subproject ->
    afterEvaluate{
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
            }
        }
    }
}

๊ทธ๋ฆฌ๊ณ  ์•ฑ build.gradle์—์„œ:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
}

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  3 ๋Œ“๊ธ€

๋ฃจํŠธ build.gradle ์•ˆ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

ext {
    compileSdkVersion = 29
}

subprojects { subproject ->
    afterEvaluate{
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
            }
        }
    }
}

๊ทธ๋ฆฌ๊ณ  ์•ฑ build.gradle์—์„œ:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
}

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค!

๋‚ด์„  {
compileSdkVersion = 29
}

ํ•˜์œ„ ํ”„๋กœ์ ํŠธ { ํ•˜์œ„ ํ”„๋กœ์ ํŠธ ->
ํ›„ํ‰๊ฐ€{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
์•ˆ๋“œ๋กœ์ด๋“œ {
compileSdkVersion rootProject.ext.compileSdkVersion
}
}
}
}

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค! ๊ฐ์‚ฌ ํ•ด์š”!

@MigoTiti ๊ฐ€ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๋‹ค๋ฅธ ํ”ผ๋“œ๋ฐฑ์ด ์ˆ˜์‹ ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. @MigoTiti ๊ณตํ—Œ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. @MarcioAlexandroni ๊ฐ€ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰