#android #flutter #kotlin #gradle #flutter-dependencies
Вопрос:
Когда я пытаюсь сделать Флаттер assembleRelease
для создания APK из Android Studio, я получаю эту кучу предупреждений.
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.50/50ad05ea1c2595fb31b800e76db464d08d599af3/kotlin-stdlib-jdk7-1.3.50.jar (version 1.3)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.5.10/da6a904b132f0402fa4d79169a3c1770598d4702/kotlin-stdlib-1.5.10.jar (version 1.5)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.31/6dd50665802f54ba9bc3f70ecb20227d1bc81323/kotlin-stdlib-common-1.4.31.jar (version 1.4)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.50/b529d1738c7e98bbfa36a4134039528f2ce78ebf/kotlin-stdlib-1.3.50.jar (version 1.3)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.50/3d9cd3e1bc7b92e95f43d45be3bfbcf38e36ab87/kotlin-stdlib-common-1.3.50.jar (version 1.3)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.71/e71c3fef58e26affeb03d675e91fd8abdd44aa7b/kotlin-stdlib-common-1.3.71.jar (version 1.3)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.10/ea29e063d2bbe695be13e9d044dcfb0c7add398e/kotlin-stdlib-1.4.10.jar (version 1.4)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.71/9180d3aec3f0b2ea6ef0dcf01b464a6e2219e381/kotlin-stdlib-jdk7-1.3.71.jar (version 1.3)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.71/898273189ad22779da6bed88ded39b14cb5fd432/kotlin-stdlib-1.3.71.jar (version 1.3)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.4.31/e613be5465ef1e6fd0468707690b7ebf625ea2fe/kotlin-stdlib-jdk8-1.4.31.jar (version 1.4)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.4.31/84ce8e85f6e84270b2b501d44e9f0ba6ff64fa71/kotlin-stdlib-jdk7-1.4.31.jar (version 1.4)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.31/a58e0fb9812a6a93ca24b5da75e4b5a0cb89c957/kotlin-stdlib-1.4.31.jar (version 1.4)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.5.10/c49d0703d16c6cb1526cc07b9b46486da1dd8a60/kotlin-stdlib-jdk7-1.5.10.jar (version 1.5)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.5.10/6b84d926e28493be69daf673e40076f89492ef7/kotlin-stdlib-common-1.5.10.jar (version 1.5)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.4.10/30e46450b0bb3dbf43898d2f461be4a942784780/kotlin-stdlib-jdk7-1.4.10.jar (version 1.4)
C:/Users/abc/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.10/6229be3465805c99db1142ad75e6c6ddeac0b04c/kotlin-stdlib-common-1.4.10.jar (version 1.4)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath
Похоже, что по какой-то причине включаются конфликтующие версии Kotlin.
Один из ответов, которые я нашел здесь, предлагал проверить build.gradle, чтобы убедиться, что в gradle верхнего уровня включена та же версия Kotlin, что и в каталоге /app, что и есть. Он использует Kotlin 1.5.10, указанный через свойство верхнего уровня $kotlin_version
следующим образом:
buildscript {
ext.kotlin_version = '1.5.10'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.8'
}
}
Во app/build.gradle
мне есть это:
dependencies {
// Import the Firebase BoM
implementation platform('com.google.firebase:firebase-bom:28.4.0')
// Add the dependency for the Firebase SDK for Google Analytics
// When using the BoM, don't specify versions in Firebase dependencies
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-messaging'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.multidex:multidex:2.0.1'
}
Я взглянул на дерево зависимостей приложений gradle, и, похоже, что для пути к выпуску Runtimeclasspath я могу видеть только те версии kotlin, которые предназначены для собственных библиотек Facebook и Google:
--- project :flutter_facebook_auth
| --- com.facebook.android:facebook-login:11.1.1
| | --- com.facebook.android:facebook-core:11.1.1
| | | --- androidx.annotation:annotation:1.1.0
| | | --- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
| | | --- com.android.installreferrer:installreferrer:1.0
| | | --- androidx.core:core-ktx:1.3.2
| | | | --- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 1.5.10
| | | | | --- org.jetbrains:annotations:13.0
| | | | | --- org.jetbrains.kotlin:kotlin-stdlib-common:1.5.10
| | | | --- androidx.annotation:annotation:1.1.0
| | | | --- androidx.core:core:1.3.2 (*)
| | | --- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10 -> 1.5.10
| | | --- org.jetbrains.kotlin:kotlin-stdlib:1.5.10 (*)
--- project :firebase_messaging
| --- project :firebase_core (*)
| --- com.google.firebase:firebase-bom:28.3.1 -> 28.4.0 (*)
| --- com.google.firebase:firebase-messaging -> 22.0.0
| | --- androidx.collection:collection:1.0.0 -> 1.1.0 (*)
| | --- androidx.core:core:1.0.0 -> 1.3.2 (*)
| | --- com.google.android.datatransport:transport-api:3.0.0 (*)
| | --- com.google.android.datatransport:transport-backend-cct:3.0.0 (*)
| | --- com.google.android.datatransport:transport-runtime:3.0.0 (*)
| | --- com.google.android.gms:play-services-basement:17.0.0 -> 17.6.0 (*)
| | --- com.google.android.gms:play-services-cloud-messaging:16.0.0 (*)
| | --- com.google.android.gms:play-services-stats:17.0.0 (*)
| | --- com.google.android.gms:play-services-tasks:17.0.0 -> 17.2.1 (*)
| | --- com.google.firebase:firebase-common:20.0.0 (*)
| | --- com.google.firebase:firebase-components:17.0.0 (*)
| | --- com.google.firebase:firebase-datatransport:18.0.0
| | | --- androidx.annotation:annotation:1.1.0
| | | --- com.google.android.datatransport:transport-api:3.0.0 (*)
| | | --- com.google.android.datatransport:transport-backend-cct:3.0.0 (*)
| | | --- com.google.android.datatransport:transport-runtime:3.0.0 (*)
| | | --- com.google.firebase:firebase-common:20.0.0 (*)
| | | --- com.google.firebase:firebase-components:17.0.0 (*)
| | --- com.google.firebase:firebase-iid-interop:17.1.0 (*)
| | --- com.google.firebase:firebase-installations:17.0.0 (*)
| | --- com.google.firebase:firebase-installations-interop:17.0.0 (*)
| | --- com.google.firebase:firebase-measurement-connector:19.0.0 (*)
| --- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 (*)
| --- androidx.annotation:annotation:1.1.0
| --- io.flutter:flutter_embedding_release:1.0.0-f0826da7ef2d301eb8f4ead91aaf026aa2b52881 (*)
--- com.google.firebase:firebase-bom:28.4.0 (*)
--- com.google.firebase:firebase-analytics-ktx -> 19.0.1
| --- com.google.firebase:firebase-analytics:19.0.1 (*)
| --- com.google.firebase:firebase-common:20.0.0 (*)
| --- com.google.firebase:firebase-common-ktx:20.0.0
| | --- androidx.annotation:annotation:1.1.0
| | --- com.google.firebase:firebase-common:20.0.0 (*)
| | --- com.google.firebase:firebase-components:17.0.0 (*)
| | --- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72 -> 1.5.10 (*)
| --- com.google.firebase:firebase-components:17.0.0 (*)
| --- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 -> 1.5.10 (*)
--- com.google.firebase:firebase-messaging -> 22.0.0 (*)
--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.10 (*)
And a couple of other dependencies such as sentry and map_launcher. However according to this dependency tree, gradle is bringing the version up to 1.5.10 anyway.
Is there any way to fix the issue with these warnings? Is there anything wrong going on?