Π― Π·Π½Π°Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ Π½Π΅Π΅. Π― ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» ΠΊΠΎΠ΄, ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Ρ ΠΌΠ΅Π½Ρ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Android.
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "27.1.1"
}
}
}
}
Launching lib\main.dart on TA 1024 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.1) classpath. You should manually set the same version via DependencyResolution
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 6s
Finished with error: Gradle task assembleDebug failed with exit code 1
Π₯ΠΎΡΠΎΡΠΎ, ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΠΎΡ ΡΠ°ΠΊ
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "27.1.1"
}
if (details.requested.group == 'androidx.core'
&& !details.requested.name.contains('androidx') ) {
details.useVersion "1.0.1"
}
}
}
}
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ Π² ΡΠ²ΠΎΠΉ build.gradle
Π² ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ Π²ΠΎΡ ΡΠ°ΠΊ.
ΠΡΠ°Π΄Π»
buildscript {
ext.kotlin_version = '1.2.51'
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ {
Google()
jcenter ()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "27.1.1"
}
if (details.requested.group == 'androidx.core'
&& !details.requested.name.contains('androidx') ) {
details.useVersion "1.0.1"
}
}
}
}
}
allprojects {
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ {
Google()
jcenter ()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "$ {rootProject.buildDir} / $ {project.name}"
}
subprojects {
project.evaluationDependsOn (': ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅')
}
ΠΎΡΠΈΡΡΠΊΠ° Π·Π°Π΄Π°ΡΠΈ (ΡΠΈΠΏ: Π£Π΄Π°Π»ΠΈΡΡ) {
ΡΠ΄Π°Π»ΠΈΡΡ rootProject.buildDir
}
`` ''
cc @amirh @mklim
ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ compileSdkVersion
Ρ 27 Π΄ΠΎ 28 Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π― Π²ΡΡΠ°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ΅ΠΌΠ½ΡΡ ΠΌΠ°Π³ΠΈΡ Π² .../android/build.gradle
(Π° Π½Π΅ Π² .../android/app/build.grade
), ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΡΠ΅Π·Π»Π°:
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'androidx.core' &&
!details.requested.name.contains('androidx')) {
details.useVersion "1.0.1"
}
}
}
}
Π£ ΠΌΠ΅Π½Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΡΠΎ. ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
@Atominac Π½Π°ΡΠ΅Π» Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Π² # 27679.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ
flutter_local_notifications: firebase_core: firebase_messaging:
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π₯ΠΈΠΊΡΠΈ. Π ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΡΠ΅Π·Π½Π΅Ρ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ -rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.
Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅ android/build.gradle
: classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ 3.2.1
)
@ david-mccoy Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! Π£ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ!
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Ρ ΠΌΠ΅Π½Ρ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ
Π ΠΏΠ½, 4 ΠΌΠ°ΡΡΠ° 2019 Π³., 9:34 Prakhar Varshney [email protected]
Π½Π°ΠΏΠΈΡΠ°Π»:
@ david-mccoy https://github.com/david-mccoy Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ! Π£ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ!
-
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/flutter/flutter/issues/27254#issuecomment-469163125 ,
ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ
https://github.com/notifications/unsubscribe-auth/AX2WfqRQkKG5VGc-8xt1c1vIQhwBzHBKks5vTNqOgaJpZM4aYzDb
.
@ david-mccoy ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ! Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
@ david-mccoy ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ΅Π½Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ androidX, ΠΈ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ
ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΈ Π΄Π»Ρ ΠΌΠ΅Π½Ρ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π‘ΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ Kotlin (Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Kotlin Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅) Π½Π° 1.3.0 (Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ 1.2.71)
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ gradle Ρ 3.2.1 Π΄ΠΎ 3.3.1 Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΊΠ° android: Π² androidmanifest.xml Π½Π΅ Π²ΡΡΡΠΏΠΈΡ Π² ΡΠΈΠ»Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π²ΡΡΡΠΏΡΡ Π² ΡΠΈΠ»Ρ. @ ΠΡΠ²ΠΈΠ΄-ΠΠ°ΠΊΠΊΠΎΠΉ. ΠΡ Π½Π°ΡΠ»ΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡοΌ
ΠΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ gradle Ρ 3.2.1 Π΄ΠΎ 3.3.1 Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΊΠ° android: Π² androidmanifest.xml Π½Π΅ Π²ΡΡΡΠΏΠΈΡ Π² ΡΠΈΠ»Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π²ΡΡΡΠΏΡΡ Π² ΡΠΈΠ»Ρ. @ ΠΡΠ²ΠΈΠ΄-ΠΠ°ΠΊΠΊΠΎΠΉ. ΠΡ Π½Π°ΡΠ»ΠΈ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡοΌ
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Ρ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π Π°Π±ΠΎΡΠ°Π» Ρ ΠΌΠ΅Π½Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ com.android.tools.build:gradle
Π½Π° 3.3.2
ΡΠ΅ΡΠΈΠ»ΠΎ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠ°ΠΉΠ», ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ flutter create
, ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ Ρ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ? π€
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΡΠ»ΠΈΠ½Π°, ΡΠ°ΠΊ ΠΈ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ° ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!!!
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° https://github.com/flutter/flutter/pull/35217.
Π― ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ°Π» ΠΎΠ± ΡΡΠΎΠΌ, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΌΠ½Π΅,
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΡΠΎ:
1.ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ build.gradle Π² ΠΏΠ°ΠΏΠΊΠ΅ gradle ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π½Π°
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:**3.4.1**'
}
}
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² android-> gradle-> wrapper-> gradle-wrapper.properties ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ URL-Π°Π΄ΡΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°
distributionUrl = https \: //services.gradle.org/distributions/ gradle-5.1.1-all.zip
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
@ david-mccoy Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π΄ΡΡΠ³. ΠΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π₯ΠΎΡΠΎΡΠΎ, ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΠΎΡ ΡΠ°ΠΊ
subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) { details.useVersion "27.1.1" } if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx') ) { details.useVersion "1.0.1" } } } }
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ Π² ΡΠ²ΠΎΠΉ
build.gradle
Π² ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ Π²ΠΎΡ ΡΠ°ΠΊ.buildscript { ext.kotlin_version = '1.2.51' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.2.0' } subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) { details.useVersion "27.1.1" } if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx') ) { details.useVersion "1.0.1" } } } } } allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } task clean(type: Delete) { delete rootProject.buildDir }
Π‘ΠΏΠ°Ρ ΠΌΠΎΠΉ Π΄Π΅Π½Ρ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ :)
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
ΠΠΎΠ½ΡΡΠ½ΠΎ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ! ΠΠ΅Π½Ρ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Android 'androidx. core: core 'ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (1.0.0) ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (1.0.2). ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡ ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· DependencyResolution.
[β] Flutter (ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠ°Π½Π°Π», v1.7.8 + ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ 4, Π² Microsoft Windows [Π²Π΅ΡΡΠΈΡ 10.0.17763.678], Π»ΠΎΠΊΠ°Π»Ρ tr-TR)
[β] Android toolchain - ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Android (Android SDK Π²Π΅ΡΡΠΈΠΈ 29.0.1)
[β] Android Studio (Π²Π΅ΡΡΠΈΡ 3.4)
[β] VS Code (Π²Π΅ΡΡΠΈΡ 1.37.1)
[β] ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (Π΄ΠΎΡΡΡΠΏΠ½ΠΎ 1)
Π― ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ°Π» ΠΎΠ± ΡΡΠΎΠΌ, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΌΠ½Π΅,
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΡΠΎ:1.ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ build.gradle Π² ΠΏΠ°ΠΏΠΊΠ΅ gradle ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π½Π°
buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:**3.4.1**' } }
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² android-> gradle-> wrapper-> gradle-wrapper.properties ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ URL-Π°Π΄ΡΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°
distributionUrl=https\://services.gradle.org/distributions/**gradle-5.1.1-all.zip**
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Android Gradle Plugin ΠΈ Gradle Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ»Ρ Android Studio 3.5 ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΡ
:
android / build.gradle
com.android.tools.build:gradle:3.5.0
Android / Gradle / ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° / Gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡ ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· DependencyResolution. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
android / gradle.properties:
androidxCoreVersion=1.0.0
androidxLifecycleVersion=2.0.0
````
android/build.gradle:
```groovy
subprojects {
project.configurations.all {
resolutionStrategy {
force "androidx.core:core:${androidxCoreVersion}"
force "androidx.lifecycle:lifecycle-common:${androidxLifecycleVersion}"
}
}
}
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ΅ΡΠ΅Π½Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ @ Lebogang95, Π½ΠΎ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ Π½ΠΎΠ²ΠΎΠΉ Ρ androidx.swiperefreshlayout ΠΈ androidx.localbroadca stmanager: localbroadcastmanager, ΠΈ ΠΎΠ½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ
ΠΠ΄Π½Π° ΠΈΠ· ΠΎΡΠΈΠ±ΠΎΠΊ Π³Π»Π°ΡΠΈΡ:
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Android 'androidx.dra werlayout: drawerlayout ' ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (1.0.0-rc01) ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (1.0.0). ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡ ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· DependencyResolution
Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΏΠ°ΡΠ½ΠΈ?
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Gradle ΡΠ΅ΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ.
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
classpath 'com.android.tools.build:gradle:3.5.0'
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ ! ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΏΠ°Ρ ΠΌΠ½Π΅ Π΄Π΅Π½Ρ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.
Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)Π‘ΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ Kotlin (Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Kotlin Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅) Π½Π° 1.3.0 (Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ 1.2.71)
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΠΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΠΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
+1
Π― Π²ΡΡΠ°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ΅ΠΌΠ½ΡΡ ΠΌΠ°Π³ΠΈΡ Π²
.../android/build.gradle
(Π° Π½Π΅ Π².../android/app/build.grade
), ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΡΠ΅Π·Π»Π°:subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx')) { details.useVersion "1.0.1" } } } }
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΡΠΎ!!! ΠΡΠ»ΠΈ ΡΠ°ΡΡ, ΠΏΡΡΠ°ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ.
Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° androidx ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» gradle, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π±ΡΠ»ΠΎ Π±Ρ Π»ΡΡΡΠ΅.
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.
Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)Π‘ΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ Kotlin (Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Kotlin Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅) Π½Π° 1.3.0 (Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ 1.2.71)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π― ΠΏΠΎΡΡΠ°ΡΠΈΠ» 2 Π΄Π½Ρ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°Ρ ΡΠΎΠ²Π΅Ρ ΡΠΏΠ°Ρ ΠΌΠ΅Π½Ρ! ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΠΈ Π±ΡΠ΄ΡΡΠ΅ ΡΡΠ°ΡΡΠ»ΠΈΠ²Ρ :)
ΠΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π±ΡΠ°ΡΠ°Π½ :)
ΠΠΎ Π²ΡΠΎΡΠ½ΠΈΠΊ, 1 ΠΎΠΊΡΡΠ±ΡΡ 2019 Π³., Π² 23:30 ΠΠΎΠ½ΡΡΠ°Π½ΡΠΈΠ½ [email protected] Π½Π°ΠΏΠΈΡΠ°Π»:
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π¨ΡΡΠΊΠ° Π»ΠΈ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ
ΠΆΠ°Π»ΠΎΠ±Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ -rc01
ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ) ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² android / build.gradle
ΡΠ°ΠΉΠ»: classpath 'com.android.tools. build: gradle : 3.3.1 '(ΡΠ°Π½ΡΡΠ΅ Ρ Π±ΡΠ»
Π² Π²Π΅ΡΡΠΈΠΈ 3.2.1)Π― ΠΏΠΎΡΡΠ°ΡΠΈΠ» 2 Π΄Π½Ρ, ΠΏΡΡΠ°ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠ» ΡΠΎΠ»ΡΠΊΠΎ Π²Π°Ρ ΡΠΎΠ²Π΅Ρ
ΠΌΠ΅Π½Ρ! ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΠΈ Π±ΡΠ΄ΡΡΠ΅ ΡΡΠ°ΡΡΠ»ΠΈΠ²Ρ :)-
ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΡΠΎ ΠΏΠΈΡΡΠΌΠΎ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° GitHub
https://github.com/flutter/flutter/issues/27254?email_source=notifications&email_token=AM36K6XWUVIUJZBKV2YNN23QMQ5XHA5CNFSM4GTDGDN2YY3PNVWWK3TUL52HS443VMVREXDWWK3TUL52HS443DFMVREXDWOWWK3TUL52HS443DFMVREX5XWWWWC08C08C0B0B0B0B0B08
ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ
https://github.com/notifications/unsubscribe-auth/AM36K6RLHCLRE64Q3OKFO53QMQ5XHANCNFSM4GTDGDNQ
.
Π₯ΠΎΡΠΎΡΠΎ, ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π²ΠΎΡ ΡΠ°ΠΊ
subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) { details.useVersion "27.1.1" } if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx') ) { details.useVersion "1.0.1" } } } }
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎ Π² ΡΠ²ΠΎΠΉ
build.gradle
Π² ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ Π²ΠΎΡ ΡΠ°ΠΊ.buildscript { ext.kotlin_version = '1.2.51' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.2.0' } subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.android.support' && !details.requested.name.contains('multidex') ) { details.useVersion "27.1.1" } if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx') ) { details.useVersion "1.0.1" } } } } } allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } task clean(type: Delete) { delete rootProject.buildDir }
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π΄ΡΡΠΆΠΈΡΠ΅, ΡΡ ΡΠ΅ΡΠΈΠ» ΠΌΠΎΡ Π±ΠΎΠ»ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ...
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.
Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)Π‘ΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΡΠΈΠΈ Kotlin (Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Kotlin Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅) Π½Π° 1.3.0 (Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ 1.2.71)
ΠΠ΅ΡΡΠΈΡ Kotlin - ΡΡΠΎ V, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π»Π°. ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° ext.kotlin_version = '1.3.0'
Π ΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΡΠ΅Π΅. ΠΡΠ΅ΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Flutter, ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π³ΠΎΠ΄ Π½Π°Π·Π°Π΄:
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Kotlin Π½Π°:
ext.kotlin_version = '1.3.0'
ΠΈ Gradle:
classpath 'com.android.tools.build:gradle:3.3.1'
ΠΡΠ»ΠΈ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π°ΡΡ Google, Ρ Π΅Π΅ Π½Π΅ Π²ΠΈΠΆΡ. ΠΠ΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π»Ρ Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠ΅Ρ Π½Π°Π±ΡΠ°ΡΡ ΠΎΠ±ΠΎΡΠΎΡΡ ...
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΠΠ°, ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ! Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΊΠ°ΠΊ Π³ΠΈΠ΄ΡΠ°, ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Π²ΡΡΠ°ΡΡΠΈΡΠ΅ Π΄Π²Π°.
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° AndroidX ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ firebase_core ΠΈ firebase_messaging, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Gradle 3.3.1, ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» @ david-mccoy, ΡΡΡΡΠ°Π½ΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ, ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π΄ΡΠ°ΠΆΠ°Π΅Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Flutter, ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ android Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ "gradle.properties", Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΡΡΡΠΎΠΊΠΈ
android.useAndroidX = ΠΏΡΠ°Π²Π΄Π°
android.enableJetifier = true
ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» "android / build.gradle"
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Gradle Π½Π° 3.3.1 Π²ΠΌΠ΅ΡΡΠΎ 3.2.1
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ com.google.gms: google-services: 4.3.2
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΡ kotlin Π½Π° 1.3.0 ext.kotlin_version = '1.3.0'
ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ android / app / build.gradle
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Firebase SDK
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'com.google.firebase: firebase-analytics: 17.2.0'
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ SDK Π² Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Firebase
https://firebase.google.com/docs/android/setup#available -libraries
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½: 'com.google.gms.google-services'
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'com.android. ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°: multidex : 1.0.3 '
ΠΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Flutter - Π²Π΅ΡΡ ΡΠΌΠ½Π΅Π΅ ΠΈ Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½Π΅Π΅.
ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²ΡΡΡΠ½ΡΡ. ΠΡΠΎΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² Android Studio ΠΈ Refactor -> Migrate to AndroidX...
ΠΈ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ.
Π‘ΡΡΠ»ΠΊΠ°: https://flutter.dev/docs/development/androidx-migration
@theshyelf
Π ΠΈΠ΄Π΅Π°Π»Π΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ.
Π ΠΈΠ΄Π΅Π°Π»Π΅, Ρ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ Ρ Π΄ΠΎΠ±Π°Π²Π»Ρ ΠΏΠ°ΠΊΠ΅Ρ Π² pubspec, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ Nuget Xamarin Π² Visual Studio
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
1. change kotlin_version from 1.2.71 to 1.3.0 2. change gradle version from 3.2.1 to 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ flutter pub cache repair
ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠ½ΠΎΠ²Π° ΡΠΎΠ±ΡΠ°Π»ΡΡ
@insinfo ΠΠ»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ AndroidX Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: flutter create --androidx -t <project-type> <new-project-path>
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
1. change kotlin_version from 1.2.71 to 1.3.0 2. change gradle version from 3.2.1 to 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π±ΡΠ°Ρ, ΡΡΠΎ ΡΠ΅ΡΠΈΠ»ΠΎ ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. ΠΡΠΎ ΡΠ΅ΡΠΈΡ ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ.
ΠΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ²ΠΎ:
ΠΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ²ΠΎ:
1. Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° 3.3.1 Π² build.grade Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΠ΅ ext.kotlin_version = '1.3.31'
2. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² grade.properties,
android.useAndroidX = ΠΏΡΠ°Π²Π΄Π°
android.enableJetifier = true,
ΠΡΡΠ°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΡ ΡΡΡΠΎΠΊΡ org.gradle.jvmargs = -Xmx1536M
ΠΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄Π°Π»ΠΈΡΠ΅.
3. ΠΠ°ΠΊΠΎΠ½Π΅Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ
Π― Π½Π΅ Ρ ΠΎΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° AndroidX, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Android. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
Π£ ΠΌΠ΅Π½Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΡΠΎ. ΠΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ΅Π³ΠΊΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ:
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Android 'android.arch. lifecycle: runtime 'ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (1.0.0) ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (1.1.1). ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡ ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· DependencyResolution
ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
import ' package: flutter / material.dart ';
void main () => runApp (MyApp ());
class MyApp extends StatelessWidget {
// ΠΡΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΠ½Π΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
@override
Π‘Π±ΠΎΡΠΊΠ° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° (ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ BuildContext) {
Π²Π΅ΡΠ½ΡΡΡ MaterialApp (
title: 'Flutter Demo',
ΡΠ΅ΠΌΠ°: ThemeData (
// ΠΡΠΎ ΡΠ΅ΠΌΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
//
// ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ "flutter run". ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅
// Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΅ΡΡΡ ΡΠΈΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ, Π½Π΅ Π²ΡΡ
ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅
// ΠΌΠ΅Π½ΡΠ΅ΠΌ primarySwatch Π½ΠΈΠΆΠ΅ Π½Π° Colors.green ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ
// "Π³ΠΎΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ°" (Π½Π°ΠΆΠΌΠΈΡΠ΅ "r" Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π³Π΄Π΅ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ "flutter run",
// ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Β«Π³ΠΎΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅Β» Π²ΠΎ Flutter IDE).
// ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ΅ΡΡΠΈΠΊ Π½Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² Π½ΠΎΠ»Ρ; ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
// Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
primarySwatch: Π¦Π²Π΅ΡΠ°. ΠΎΡΠ°Π½ΠΆΠ΅Π²ΡΠΉ,
),
home: MyHomePage (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: 'ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Flutter'),
);
}
}
class MyHomePage ΡΠ°ΡΡΠΈΡΡΠ΅Ρ StatefulWidget {
MyHomePage ({ΠΊΠ»ΡΡ ΠΊΠ»ΡΡΠ°, this.title}): super (ΠΊΠ»ΡΡ: ΠΊΠ»ΡΡ);
// ΠΡΠΎΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
// ΡΡΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ State (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ»Ρ, Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π°
// ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ.
// ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ - ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π² ΡΡΠΎΠΌ
// ΡΠ΅Π³ΠΈΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΈ
// ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠ±ΠΎΡΠΊΠΈ State. ΠΠΎΠ»Ρ Π² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²:
// Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ "ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ".
ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠΎΠΊΠΈ;
@override
_MyHomePageState createState () => _MyHomePageState ();
}
class _MyHomePageState ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
int _counter = 0;
void _incrementCounter () {
setState (() {
// ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² setState ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ Flutter, ΡΡΠΎ ΡΡΠΎ-ΡΠΎ
// ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ±ΠΎΡΠΊΠΈ Π½ΠΈΠΆΠ΅
// ΡΡΠΎΠ±Ρ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ
// _counter Π±Π΅Π· Π²ΡΠ·ΠΎΠ²Π° setState (), ΡΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ ΡΠ±ΠΎΡΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ
// Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π°, ΠΈ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ.
_counter ++;
});
}
@override
Π‘Π±ΠΎΡΠΊΠ° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° (ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ BuildContext) {
// ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ setState, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ done
// ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ _incrementCounter.
//
// Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Flutter ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ
// Π±ΡΡΡΡΠΎ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ, Π°
// ΡΠ΅ΠΌ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ².
return Scaffold (
appBar: AppBar (
// ΠΠ΄Π΅ΡΡ ΠΌΡ Π±Π΅ΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° MyHomePage, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½
// ΠΌΠ΅ΡΠΎΠ΄ App.build ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
title: Π’Π΅ΠΊΡΡ (widget.title),
),
ΡΠ΅Π»ΠΎ: Π¦Π΅Π½ΡΡ (
// Π¦Π΅Π½ΡΡ - ΡΡΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΌΠ°ΠΊΠ΅ΡΠ°. ΠΠ½ Π±Π΅ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π±Π΅Π½ΠΊΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ
// Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ.
Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ: Π‘ΡΠΎΠ»Π±Π΅Ρ (
// Π‘ΡΠΎΠ»Π±Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ ΠΌΠ°ΠΊΠ΅ΡΠ°. Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΡΠ΅ΠΉ ΠΈ
// ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ ΠΈΡ
ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ.
// Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΎΡΡΠ°, ΠΊΠ°ΠΊ ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
//
// ΠΡΠ·ΠΎΠ² "ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ" (Π½Π°ΠΆΠΌΠΈΡΠ΅ "p" Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅
// ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ Β«Toggle Debug PaintΒ» ΠΈΠ· Flutter Inspector Π² Android
// Studio ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«Toggle Debug PaintΒ» Π² Visual Studio Code)
// ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°.
//
// Π‘ΡΠΎΠ»Π±Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΈ
// ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΠΈΡ
ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ². ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ mainAxisAlignment Π΄Π»Ρ
// ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΠΌ Π΄Π΅ΡΠ΅ΠΉ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ; Π³Π»Π°Π²Π½Π°Ρ ΠΎΡΡ Π·Π΄Π΅ΡΡ - Π²Π΅ΡΡΠΈΠΊΠ°Π»Ρ
// ΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎΠ»Π±ΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ (ΠΏΠΎΠΏΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΎΡΡ Π±ΡΠ΄Π΅Ρ
// Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ).
mainAxisAlignment: MainAxisAlignment.center,
Π΄Π΅ΡΠΈ:
Π’Π΅ΠΊΡΡ(
'ΠΡ Π½Π°ΠΆΠΈΠΌΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·:',
),
Π’Π΅ΠΊΡΡ(
'$ _counter',
ΡΡΠΈΠ»Ρ: Theme.of (ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ) .textTheme.display1,
),
],
),
),
floatingActionButton: FloatingActionButton (
onPressed: _incrementCounter,
Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: "ΠΡΠΈΡΠ°ΡΠ΅Π½ΠΈΠ΅",
Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ: Icon (Icons.add),
), // ΠΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ Π·Π°ΠΏΡΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ.
);
}
}
ΠΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ. Π Π°Π±ΠΎΡΠ°Π» Π½Π° ΠΌΠ΅Π½Ρ
ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²ΡΡΡΠ½ΡΡ. ΠΡΠΎΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² Android Studio ΠΈ
Refactor -> Migrate to AndroidX...
ΠΈ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ.
Π‘ΡΡΠ»ΠΊΠ°: https://flutter.dev/docs/development/androidx-migration
ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ, ΡΡΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ AndroidX Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠΎΡ ΠΈ Π²ΡΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ.
ΠΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ²ΠΎ:
Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° ΠΈΠΌΠ΅ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° flutter Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π― ΡΠ΄Π΅Π»Π°Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Π΅ΡΡΠΈΡ Kotlin Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»Π°ΡΡ.
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ image_picker: ^ 0.6.2 + 3 . Ρ cloud_firestore: ^ 0.13.0 + 1
Π’ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ @bdairy , ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ» _image_picker_, ΠΈ Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
cloud_firestore: ^ 0.13.0 + 1
firebase_storage: ^ 3.1.1
image_picker: ^ 0.6.3
Π Π΅ΡΠ΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
buildscript {
ext.kotlin_version = '1.3.0'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.2'
}
}
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡ Gradle, ΠΏΠ»Π°Π³ΠΈΠ½ Android Gradle ΠΈ Kotlin.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ:
<app-dir>/android/build.gradle
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π»:``. Groovy
buildscript {
ext.kotlin_version = '1.3.50'
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ {
Google()
jcenter ()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
2. `<app-dir>/android/gradle/wrapper/gradle-wrapper.properties` contains this code:
```.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
.properties
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true
cc @zanderso ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ°ΡΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² devicelab, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
@blasten ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ ,, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΠ΅ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, Π½ΠΎ Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ. Π― Π΄Π°ΠΆΠ΅ Π±Π΅Π³Ρ ΡΠ»Π°ΡΡΠ΅Ρ ΡΠΈΡΡΠΎ .. ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ ΠΈ ΡΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΠΊΡΠΎΡ. ΠΡΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΌΠΎΡ ΡΠ°Π±ΠΎΡΡ, Ρ Π±ΡΠ» Π±Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»Π΅Π½ Π·Π° Π²Π°ΡΡ ΠΏΠΎΠΌΠΎΡΡ, ΡΠ΅Π±ΡΡΠ° .. ΡΠΏΠ°ΡΠΈΠ±ΠΎ
Π’ΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ @bdairy , ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ» _image_picker_, ΠΈ Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
cloud_firestore: ^ 0.13.0 + 1
firebase_storage: ^ 3.1.1
image_picker: ^ 0.6.3Π Π΅ΡΠ΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
buildscript { ext.kotlin_version = '1.3.0' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.2' } }
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @JuanjoA, Π½ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ. Π― Π΄ΡΠΌΠ°Ρ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ, Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π±Π»ΡΠ΄ΠΈΠ»ΡΡ.
@blasten, ΡΠΊΠΎΡΠΎ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ .. Π― ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² iOS, Π½ΠΎ ΠΌΠΎΡ Π·Π°ΡΠ²ΠΊΠ° ΡΠ°ΠΊ Π±Π»ΠΈΠ·ΠΊΠ° ... Π΅ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ??? ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ
@blasten, ΡΠΊΠΎΡΠΎ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ .. Π― ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² iOS, Π½ΠΎ ΠΌΠΎΡ Π·Π°ΡΠ²ΠΊΠ° ΡΠ°ΠΊ Π±Π»ΠΈΠ·ΠΊΠ° ... Π΅ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ??? ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ
Π― ΠΌΠΎΠ³Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π² Android, Π½ΠΎ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ios.
@blasten, ΡΠΊΠΎΡΠΎ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ .. Π― ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² iOS, Π½ΠΎ ΠΌΠΎΡ Π·Π°ΡΠ²ΠΊΠ° ΡΠ°ΠΊ Π±Π»ΠΈΠ·ΠΊΠ° ... Π΅ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ??? ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ
Π― ΠΌΠΎΠ³Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π² Android, Π½ΠΎ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ios.
@sethladd Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ iOS, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² Android, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ :)
@blasten, ΡΠΊΠΎΡΠΎ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ .. Π― ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² iOS, Π½ΠΎ ΠΌΠΎΡ Π·Π°ΡΠ²ΠΊΠ° ΡΠ°ΠΊ Π±Π»ΠΈΠ·ΠΊΠ° ... Π΅ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ??? ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ
Π― ΠΌΠΎΠ³Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π² Android, Π½ΠΎ Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½ Π² ios.
@sethladd Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ iOS, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² Android, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ :)
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° firebase:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Π΅ΡΡΠΈΡ ΡΠ»ΡΠΆΠ±Ρ gms, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ Π² app.gradle Π²ΠΌΠ΅ΡΡΠΎ 4.3.2 ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
classpath 'com.google.gms:google-services:4.2.0'
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π² build.gradle Π½ΠΈΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ:
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "27.1.1"
}
if (details.requested.group == 'androidx.core'
&& !details.requested.name.contains('androidx') ) {
details.useVersion "1.0.1"
}
}
}
}
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² build.gradle (Π²Π½Π΅ app-> build.gradle)
classpath 'com.android.tools. ΡΠ±ΠΎΡΠΊΠ°: gradle : 3.3.1 '
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΎ 3.2.1 ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π΄ΡΡΠ³Π°Ρ Π²Π΅ΡΡΠΈΡ.
ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π²Π΅ΡΡΠΈΡ kotlin Π½Π° 1.3.0 Ρ 1.2.71 ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅
goto gradle.properties ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°:
android.useAndroidX = true
android.enableJetifier = true
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΠΈ
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @sedhha, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅
ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°. Π― Π΄Π΅Π»Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ??
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @sedhha, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅
ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°. Π― Π΄Π΅Π»Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ??
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅ ΡΠΎΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ?
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @sedhha, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅
ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°. Π― Π΄Π΅Π»Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ??ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅ ΡΠΎΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ?
ΠΡΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ΄Π΅Π»Π°Π» Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ..
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @sedhha, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅
ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°. Π― Π΄Π΅Π»Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ??ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅ ΡΠΎΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ?
ΠΡΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ΄Π΅Π»Π°Π» Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ..
ΠΡΠΈΠ²Π΅Ρ @bdairy
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ. Π― Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠΆΡ Π² Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΎ Π²Π°ΡΠ΅ΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
classpath 'com.android.tools.build:gradle:3.5.0'
which should be 3.3.1
Also have you set minimum sdk version to 21?
Further I hope you have added this set of lines in gradle.properties:
android.useAndroidX = ΠΏΡΠ°Π²Π΄Π°
android.enableJetifier = true
`` ''
Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΡ kotlin Π½Π° 1.3.50, Π½ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ 1.3.0.
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΌΠ½Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @sedhha, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅
ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°. Π― Π΄Π΅Π»Π°Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ??ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅ ΡΠΎΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ?
ΠΡΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ΄Π΅Π»Π°Π» Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ..
ΠΡΠΈΠ²Π΅Ρ @bdairy
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ. Π― Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠΆΡ Π² Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΎ Π²Π°ΡΠ΅ΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:classpath 'com.android.tools.build:gradle:3.5.0' which should be 3.3.1 Also have you set minimum sdk version to 21? Further I hope you have added this set of lines in gradle.properties:
android.useAndroidX = ΠΏΡΠ°Π²Π΄Π°
android.enableJetifier = trueAlso you have changed kotlin version to 1.3.50 but it should be 1.3.0
@sedhha, ΠΌΠΎΠΉ Π΄ΡΡΠ³, Π²ΡΠ΅, ΡΡΠΎ Π²Ρ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ, Π²ΡΠ·Π²Π°Π»ΠΎ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ,
ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Kotlin Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ±ΠΎΡΠΊΡ ...
ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΠΌΠΎΡ Π²Π΅ΡΡΠΈΡ kotlin ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠ½Π° ext.kotlin_version = '1.3.0'
. Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΡΠΎ org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅, Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΡΡΡΠ» Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ...
@blasten Π΅ΡΡΡ
ΠΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ flutter_launch .. ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΠΎΡΠΈΠ±ΠΊΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ΅Π½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΠΎ, Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ... ΠΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Kotlin ΠΏΠΎΠ²Π΅ΡΡ ΡΠ°ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ,, Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ Π²ΡΠ΅ΠΌ.
@bdairy ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΠ» ΡΠ°Π½ΡΡΠ΅. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΏΠ»Π°Π³ΠΈΠ½Π΅ flutter_launch
https://pub.dev/packages/flutter_launch. ΠΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅? Π― Π²ΠΈΠ΄Π΅Π», ΡΡΠΎ Π²Π΅ΡΡΠΈΡ Π±ΡΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ββΠ² ΠΈΡΠ½Π΅ 2019 Π³ΠΎΠ΄Π°: https://github.com/thyagoluciano/flutter_launch_whatsapp/commit/d29f6359d339286519d682fb19dc4b48d3de0625
@csells ΠΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ°ΡΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ? Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ flutter ΠΈ ΠΌΠΎΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΠΠ Π΅ΡΠ΅ Π»ΡΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ flutter doctor, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠΈΡΠΊ Π²Π΅ΡΡΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠΎΠ³Π΄Π° pub ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΎΠ½ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²Π΅ΡΡΠΈΡ Kotlin, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² ΠΏΠ»Π°Π³ΠΈΠ½Π΅.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ Gradle, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΏΡΠΈΠ²Π΅Ρ ΠΏΠ°ΡΠ΅Π½Ρ 1 Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° "ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ²". ΠΎΠ½ ΠΎΡΠΊΠ»ΡΡΠ΅Π½, ΠΈ ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΅Π³ΠΎ Π² ΠΌΠ΅Π½Ρ Android
?
Π‘Π»Π΅Π΄ΡΠΉ ΡΡΠΈΠΌ ΡΠ°Π³Π°ΠΌ
ΡΠ°Π³ 1
$ flutter clean
Π Π΅ΠΌΠΎΠ½Ρ ΠΊΠ΅ΡΠ° Π² ΠΏΠ°Π±Π΅ $ flutter
ΡΠ°Π³ 2
Π² appRoot -> android -> build.gradle
ΡΠ°Π³ 3
Π² adnroid -> gradle -> wrapper -> gradle-wrapper.properties
ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ gradle Π½Π° gradle-5.6.4-all.zip ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ
distributionUrl = https \: //services.gradle.org/distributions/gradle-5.6.4-all.zip
ΡΠ°Π³ # 4
$ flutter clean
ΡΠ°Π³ # 5
$ flutter run
Π― Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ AndroidX ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. Π ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ AndroidX ΠΎΠΏΠΈΡΠ°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: https://flutter.dev/docs/development/androidx-migration.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΡΠΏΠ°ΡΠΈΠ±ΠΎ οΌ Π·Π° ΡΡΠΎ, Ρ ΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π― Π²ΡΡΠ°Π²ΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ΅ΠΌΠ½ΡΡ ΠΌΠ°Π³ΠΈΡ Π²
.../android/build.gradle
(Π° Π½Π΅ Π².../android/app/build.grade
), ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΡΠ΅Π·Π»Π°:subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'androidx.core' && !details.requested.name.contains('androidx')) { details.useVersion "1.0.1" } } } }
Ρ ΠΌΠ΅Π½Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΌΠ΅Π½Ρ
ΠΠ΄Π½ΠΎ ΠΈΠ· Π»ΡΡΡΠΈΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° Github, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π²ΠΈΠ΄Π΅Π»
https://github.com/flutter/flutter/issues/27254#issuecomment -461692152
ΡΠ΅ΡΠΈΠ» ΠΌΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΠΎΠ²ΡΠΎΡΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ cloud_firestore Ρ 0.13.5 Π΄ΠΎ 0.14.0 + 2.
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠΆΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° kotlin Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ flutter, Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ 2 Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² android / build.gradle:
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ kotlin_version Ρ 1.2.71 Π½Π° 1.3.0
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Gradle Ρ 3.2.1 Π½Π° 3.3.2
ΠΏΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° 28.03.2019.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ build.gradle:
buildscript {
ext.kotlin_version = '1.3.0'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ»Π°ΡΡΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π½Π΅Π³ΠΎ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ / Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ?
ΠΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎοΌ Π£ ΠΌΠ΅Π½Ρ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ!
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ΅Π· ΡΡΡΠΎΠΊ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Π»ΠΎΠ± Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ AndroidX, Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠΈ
-rc01
), ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ.Π― ΡΠ΅ΡΠΈΠ» ΡΡΠΎ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² ΡΠ²ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Gradle Π² ΡΠ°ΠΉΠ»Π΅
android/build.gradle
:classpath 'com.android.tools.build:gradle:3.3.1'
(ΡΠ°Π½Π΅Π΅ Ρ Π±ΡΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈ3.2.1
)