Flutter-geolocator: Android 쒅속성 'androidx.core:core'λŠ” 컴파일(1.0.0) 및 λŸ°νƒ€μž„(1.0.1) 클래슀 κ²½λ‘œμ— λŒ€ν•΄ 버전이 λ‹€λ¦…λ‹ˆλ‹€.

에 λ§Œλ“  2019λ…„ 03μ›” 12일  Β·  15μ½”λ©˜νŠΈ  Β·  좜처: Baseflow/flutter-geolocator

πŸ› 버그 μ‹ κ³ 


μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

이 ν”ŒλŸ¬κ·ΈμΈμ„ μ„€μΉ˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 이 ν”ŒλŸ¬κ·ΈμΈμ˜ λ‹€λ₯Έ 버전(3.0.1, 3.0.0, 2.1.1, 2.1.0)을 μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ 이미이 λ¬Έμ œκ°€ λ°œμƒ ν–ˆμŠ΅λ‹ˆκΉŒ?

pubsec.yaml

이름: flutter_app
μ„€λͺ…: μƒˆλ‘œμš΄ Flutter μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€.

버전: 1.1.0+1

ν™˜κ²½:
SDK: ">=2.1.0 <3.0.0"

μ˜μ‘΄μ„±:
싀룩 거리닀:
SDK: ν”ŒλŸ¬ν„°

cupertino_icons: ^0.1.2
μœ„μΉ˜μΆ”μ κΈ°: ^3.0.1
κΆŒν•œ 처리기: ^3.0.0
메타: ^1.1.6
google_api_availability: ^2.0.0

dev_dependencies:
flutter_test:
SDK: ν”ŒλŸ¬ν„°

flutter_launcher_icons: ^0.6.1

flutter_icons:
image_path: "μžμ‚°/img/location.png"
μ•ˆλ“œλ‘œμ΄λ“œ: 사싀

싀룩 거리닀:
재료 λ””μžμΈ μ‚¬μš©: 사싀
μžμ‚°:
- μžμ‚°/img/location.png
- μžμ‚°/img/gps.png
- μžμ‚°/img/no_gps.png

- μžμ‚°/img/where.jpg

μœ„μΉ˜νŽ˜μ΄μ§€.λ‹€νŠΈ

κ°€μ Έμ˜€κΈ° ' νŒ¨ν‚€μ§€:flutter/material.dart ';
κ°€μ Έμ˜€κΈ° ' νŒ¨ν‚€μ§€:geolocator/geolocator.dart ';

클래슀 LocationPage ν™•μž₯ StatefulWidget {
@μš°μ„Έν•˜λ‹€
LocationPageState createState() => LocationPageState();
}

클래슀 LocationPageStateλŠ” μƒνƒœλ₯Ό ν™•μž₯ν•©λ‹ˆλ‹€.{

μ΄ˆκΈ°ν™” μœ„μΉ˜() 비동기{
μœ„μΉ˜ μœ„μΉ˜ = λŒ€κΈ° Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
인쇄(μœ„μΉ˜);
}

μ΄ˆκΈ°ν™” μƒνƒœ() {
super.initState();
μ΄ˆκΈ°ν™” μœ„μΉ˜();
}

@μš°μ„Έν•˜λ‹€
μœ„μ ― λΉŒλ“œ(BuildContext μ»¨ν…μŠ€νŠΈ) {
리턴 μŠ€μΊν΄λ“œ(...);
}

}

μ½˜μ†” 좜λ ₯:

flutter_appμ—μ„œ "flutter packages get" μ‹€ν–‰... 0.6s
디버그 λͺ¨λ“œμ˜ MI 6μ—μ„œ lib/main.dart μ‹œμž‘ 쀑...
Gradle μ΄ˆκΈ°ν™” 쀑...
쒅속성 ν•΄κ²° 쀑...
Gradle μž‘μ—… 'assembleDebug' μ‹€ν–‰ 쀑...

FAILURE: μ˜ˆμ™Έμ™€ ν•¨κ»˜ λΉŒλ“œμ— μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

  • 무엇이 잘λͺ»λ˜μ—ˆλŠ”지:
    μž‘μ—… ': app:preDebugBuild '에 λŒ€ν•œ 싀행에 μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

    Android 쒅속성 'androidx. core:core 'μ—λŠ” 컴파일(1.0.0) 및 λŸ°νƒ€μž„(1.0.1) 클래슀 κ²½λ‘œμ— λŒ€ν•œ 버전이 λ‹€λ¦…λ‹ˆλ‹€. DependencyResolution을 톡해 λ™μΌν•œ 버전을 μˆ˜λ™μœΌλ‘œ μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • λ…Έλ ₯ν•˜λ‹€:
    --stacktrace μ˜΅μ…˜κ³Ό ν•¨κ»˜ μ‹€ν–‰ν•˜μ—¬ μŠ€νƒ 좔적을 κ°€μ Έμ˜΅λ‹ˆλ‹€. 더 λ§Žμ€ 둜그 좜λ ₯을 μ–»μœΌλ €λ©΄ --info λ˜λŠ” --debug μ˜΅μ…˜κ³Ό ν•¨κ»˜ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€. 전체 톡찰λ ₯을 μ–»μœΌλ €λ©΄ --scanκ³Ό ν•¨κ»˜ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

  • https://help.gradle.org μ—μ„œ 더 λ§Žμ€ 도움 λ°›κΈ°

4초 λ§Œμ— ꡬ좕 μ‹€νŒ¨


Gradle 였λ₯˜λŠ” 이 Flutter μ•±μ˜ AndroidX λΉ„ν˜Έν™˜μ„± λ•Œλ¬ΈμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
문제 및 ν•΄κ²° 방법에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ https://goo.gl/CP92wY λ₯Ό μ°Έμ‘°


였λ₯˜λ‘œ μ™„λ£Œλ¨: Gradle μž‘μ—… assembleDebugκ°€ μ’…λ£Œ μ½”λ“œ 1κ³Ό ν•¨κ»˜ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€.

λ²ˆμ‹ 단계

ν”ŒλŸ¬ν„° 런 -d

ꡬ성

버전: 3.0.1

ν”Œλž«νΌ:

  • [ ] : 아이폰: iOS
  • [*] :λ‘œλ΄‡: μ•ˆλ“œλ‘œμ΄λ“œ

[βœ“] Flutter(Mac OS X 10.13.6 17G65μ—μ„œ μ•ˆμ •μ μΈ 채널, v1.2.1, λ‘œμΌ€μΌ en-UA)
[βœ“] Android 도ꡬ λͺ¨μŒ - Android 기기용 개발(Android SDK 버전 28.0.3)
[βœ“] iOS 툴체인 - iOS 기기용 개발(Xcode 10.1)
[βœ“] μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€(버전 3.3)
[βœ“] VS μ½”λ“œ(버전 1.31.1)
[βœ“] μ—°κ²°λœ μž₯치(1개 μ‚¬μš© κ°€λŠ₯)

β€’ 발견된 λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€!

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚˜λ₯Ό μœ„ν•΄ gradle 속성 νŒŒμΌμ— Android λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μΆ”κ°€ν•œ λ‹€μŒ 클래슀 경둜 'com.android.tools.xml'을 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. build:gradle :3.2.1'을 클래슀 경둜 'com.android.tools. λΉŒλ“œ:그라듀 :3.3.1'. μ €λŠ” Geolocator 3.0.1을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 링크λ₯Ό λ”°λ₯΄μ‹­μ‹œμ˜€ https://www.youtube.com/watch?v=ZRl4t2KdEHQ 그런 λ‹€μŒ μœ„μ—μ„œ λ§ν•œ 것을 μˆ˜ν–‰

λͺ¨λ“  15 λŒ“κΈ€

λ‚˜λ₯Ό μœ„ν•΄ gradle 속성 νŒŒμΌμ— Android λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μΆ”κ°€ν•œ λ‹€μŒ 클래슀 경둜 'com.android.tools.xml'을 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. build:gradle :3.2.1'을 클래슀 경둜 'com.android.tools. λΉŒλ“œ:그라듀 :3.3.1'. μ €λŠ” Geolocator 3.0.1을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 링크λ₯Ό λ”°λ₯΄μ‹­μ‹œμ˜€ https://www.youtube.com/watch?v=ZRl4t2KdEHQ 그런 λ‹€μŒ μœ„μ—μ„œ λ§ν•œ 것을 μˆ˜ν–‰

λ‚˜

λ‚˜λ₯Ό μœ„ν•΄ gradle 속성 νŒŒμΌμ— Android λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μΆ”κ°€ν•œ λ‹€μŒ 클래슀 경둜 'com.android.tools.xml'을 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. build:gradle :3.2.1'을 클래슀 경둜 'com.android.tools. λΉŒλ“œ:그라듀 :3.3.1'. μ €λŠ” Geolocator 3.0.1을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 링크λ₯Ό λ”°λ₯΄μ‹­μ‹œμ˜€ https://www.youtube.com/watch?v=ZRl4t2KdEHQ 그런 λ‹€μŒ μœ„μ—μ„œ λ§ν•œ 것을 μˆ˜ν–‰

λ‚΄κ°€ μΆ”κ°€ν–ˆμ„ λ•Œ (android.useAndroidX=true
android.enableJetifier=true)
gradle 속성 덕뢄에 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

@aidooyaw1992 κ°μ‚¬ν•©λ‹ˆλ‹€. 클래슀 경둜λ₯Ό 3.3.1둜 λ³€κ²½ν•˜λ©΄ μ €μ—κ²Œλ„

λ‚˜

λ‚˜λ₯Ό μœ„ν•΄ gradle 속성 νŒŒμΌμ— Android λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μΆ”κ°€ν•œ λ‹€μŒ 클래슀 경둜 'com.android.tools.xml'을 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. build:gradle :3.2.1'을 클래슀 경둜 'com.android.tools. λΉŒλ“œ:그라듀 :3.3.1'. μ €λŠ” Geolocator 3.0.1을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 링크λ₯Ό λ”°λ₯΄μ‹­μ‹œμ˜€ https://www.youtube.com/watch?v=ZRl4t2KdEHQ 그런 λ‹€μŒ μœ„μ—μ„œ λ§ν•œ 것을 μˆ˜ν–‰

λ‚΄κ°€ μΆ”κ°€ν–ˆμ„ λ•Œ (android.useAndroidX=true
android.enableJetifier=true)
gradle 속성 덕뢄에 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ”μ΄ μ„ΈνŠΈλ₯Ό 가지고 μžˆμ—ˆκ³  λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
λ‚˜λ₯Ό μœ„ν•΄ ν•΄κ²° 된 것은 @aidooyaw1992 의 νŒμ΄μ—ˆκ³  클래슀 경둜λ₯Ό gradle:3.3.1 둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€

κ°μ‚¬ν•©λ‹ˆλ‹€, @aidooyaw1992!

μ²œλ§Œμ—μš”

2019λ…„ 3μ›” 18일 μ›”μš”μΌ, 17:17 Matheus Henrique de Oliveira, <
[email protected]>은 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

λ‚˜

λ‚˜λ₯Ό μœ„ν•΄ gradle 속성 νŒŒμΌμ— Android λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μΆ”κ°€ν•˜κ³ 
그런 λ‹€μŒ 클래슀 경둜 'com.android.tools.xml'을 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. build:gradle :3.2.1'을 클래슀 경둜둜
'com.android.tools. λΉŒλ“œ:그라듀 :3.3.1'. μ €λŠ” Geolocator 3.0.1을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ”°λ₯΄λ‹€
이 링크 https://www.youtube.com/watch?v=ZRl4t2KdEHQ λ‹€μŒ λ‚΄κ°€ 무엇을
μœ„μ—μ„œ λ§ν–ˆλ‹€

λ‚΄κ°€ μΆ”κ°€ν–ˆμ„ λ•Œ (android.useAndroidX=true
android.enableJetifier=true)
gradle 속성 덕뢄에 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ”μ΄ μ„ΈνŠΈλ₯Ό 가지고 μžˆμ—ˆκ³  λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
λ‚˜λ₯Ό μœ„ν•΄ ν•΄κ²°λœ 것은 @aidooyaw1992의 νŒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.
https://github.com/aidooyaw1992 , 클래슀 경둜λ₯Ό gradle:3.3.1 둜 λ³€κ²½ν•©λ‹ˆλ‹€

κ°μ‚¬ν•©λ‹ˆλ‹€, @aidooyaw1992 https://github.com/aidooyaw1992 !

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/BaseflowIT/flutter-geolocator/issues/228#issuecomment-474014943 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AIG4X9VG3JH5L3NctGCqQ0NzTDuWl3XGks5vX8obgaJpZM4brXKj
.

μ°Έμ‘°: https://github.com/Lyokone/flutterlocation/issues/117

λΉ„μŠ·ν•΄ 보인닀.

μΉœκ΅¬κ°€ μžˆμŠ΅λ‹ˆλ‹€ ... λ™μΌν•œ λ¬Έμ œμ— μ§λ©΄ν•˜μ—¬ 클래슀 경둜λ₯Ό 3.2.1μ—μ„œ gradle:3.3.0 (3.3.1이 μ•„λ‹˜)으둜 λ³€κ²½ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ (android.useAndroidX=true
android.enableJetifier=true) to gradle.properties ....

μ–΄λŠ μͺ½μ΄ κ·Έλ ‡κ²Œ ν–ˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€...

κ³ λ§ˆμ›Œμš”, 퍼터 νŒ€...

μ—¬λŸ¬λΆ„, μ–΄λ–€ νŒŒμΌμ—μ„œ λ³€κ²½ν–ˆλŠ”μ§€ μ•Œλ €μ£Όμ‹œλ©΄ 맀우 쒋을 κ²ƒμž…λ‹ˆλ‹€. com.android.tools.build:gradle: κ²€μƒ‰ν–ˆλŠ”λ° 1개의 일치 ν•­λͺ©μ„ μ°Ύμ•˜μ§€λ§Œ 이제 λ‹€λ₯Έ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:

νŽΈμ§‘ν•˜λ‹€:
classPath 변경은 Android ν΄λ”μ˜ 루트, build.gradle
두 개의 λΆ€μšΈ 값은 Android ν΄λ”μ˜ 루트인 gradle.properties νŒŒμΌμ—λ„ μžˆμŠ΅λ‹ˆλ‹€. 두 μ€„λ§Œ μΆ”κ°€ν•˜λ©΄ λ©λ‹ˆλ‹€.

이제 μž‘λ™ν•©λ‹ˆλ‹€.

속성을 μž„μ˜λ‘œ λ³€κ²½ν•˜λŠ” 것은 μœ„ν—˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ? 그것은 μ—¬μ „νžˆ ​​이전 Android 버전과 ν˜Έν™˜λ©λ‹ˆκΉŒ?

@Robuste , λ¬Έμ œλŠ” Geolocator ν”ŒλŸ¬κ·ΈμΈμ΄ AndroidXλ₯Ό μ§€μ›ν•˜λ„λ‘ μ—…κ·Έλ ˆμ΄λ“œν–ˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€(이전 Android 버전과도 μ—¬μ „νžˆ ν˜Έν™˜ κ°€λŠ₯). 즉, λ‹€μŒ 지침에 따라 μˆ˜ν–‰ν•  수 μžˆλŠ” 앱도 μ—…κ·Έλ ˆμ΄λ“œν•΄μ•Ό ν•©λ‹ˆλ‹€.

https://github.com/BaseflowIT/flutter-geolocator/issues/196#issuecomment -465460801

μ•± μˆ˜μ€€μ—μ„œ 슀크립트 μΆ”κ°€ μ‹œλ„

ν•˜μœ„ ν”„λ‘œμ νŠΈ {
project.evaluationDependsOn(': μ•±')
project.configurations.all {
resolutionStrategy.eachDependency { μ„ΈλΆ€ 정보 ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('λ©€ν‹°λ±μŠ€') ) {
details.use버전 "28.0.0"
}
}
}
}

if (details.requested.group == 'androidx.core'
&& !details.requested.name.contains('androidx') ) {
details.use버전 "1.0.1"
}

λΉŒλ“œ ν”„λ‘œμ νŠΈμ— android.enableJetifier=true 및 android.useAndroidX=trueλ₯Ό μΆ”κ°€ν•˜κ³  클래슀 경둜λ₯Ό 3.3.1둜 λ³€κ²½ν•˜μ—¬ μ œλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ λ‚΄ 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.
(1) gradle 속성에 두 쀄 μΆ”κ°€
android.enableJetifier=μ°Έ
android.useAndroidX=μ°Έ

(2) 루트 gradle에 λ‹€μŒ μΆ”κ°€

ν•˜μœ„ ν”„λ‘œμ νŠΈ {
project.evaluationDependsOn(': μ•±')
project.configurations.all {
resolutionStrategy.eachDependency { μ„ΈλΆ€ 정보 ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('λ©€ν‹°λ±μŠ€') ) {
details.use버전 "29.0.0"
}
}
}
}

μ €λ₯Ό μœ„ν•΄ Android λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ gradle 속성 νŒŒμΌμ— μΆ”κ°€ν•œ λ‹€μŒ classpath'com.android.tools.build :gradle :3.2.1'을 classpath'com.android.tools.build :gradle : 3.3으둜 λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€. 1'. μΈμŠ€ν„΄νŠΈ λ©”μ‹œμ§•μ— geolocator 3.0.1을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.이 링크λ₯Ό 따라 https://www.youtube.com/watch?v=ZRl4t2KdEHQ ν•˜κ³  μœ„μ—μ„œ λ§ν•œ λŒ€λ‘œ λ‚΄ 문제λ₯Ό ν•΄κ²°ν•˜μ‹­μ‹œμ˜€. κ°μ‚¬ν•©λ‹ˆλ‹€.

λ‚˜λ₯Ό μœ„ν•΄ μΌν•œ aidooyaw1992μ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.
λ‚΄κ°€ 가진 또 λ‹€λ₯Έ λ¬Έμ œλŠ” intl 0.16이 flutter_localizations와 ν˜Έν™˜λ˜μ§€ μ•Šμ§€λ§Œ λ‹€μŒμ„ μ„ μ–Έν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ˜μ‘΄μ„±:
...
flutter_localizations:
SDK: ν”ŒλŸ¬ν„°
ꡭ제: 0.15.8
...

그런 λ‹€μŒ μž¬μ •μ˜
쒅속성 μž¬μ •μ˜:
ꡭ제: ^0.16.0

intl ^0.16.0에 λŒ€ν•œ 쒅속성에 λŒ€ν•΄ μž‘λ™ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰