Флаттер |Плагин Android Gradle поддерживает только плагин Kotlin Gradle версии 1.3.0 и выше - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь добавить зависимости Firebase.Когда я запускаю flutter run, я получаю

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher.
The following dependencies do not satisfy the required version:
project ':google_api_availability' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71

Pubscec.yaml

dependencies:
  flutter:
    sdk: flutter
  firebase_auth: ^0.8.1
  google_sign_in: ^4.0.1
  cloud_firestore: ^0.9.0+1
  firebase_core: ^0.3.0+1
  firebase_storage: ^2.0.1
  cupertino_icons: ^0.1.2
  font_awesome_flutter: ^8.0.1
  country_code_picker: ^1.1.0
  fluttertoast: ^2.0.7
  image_picker: ^0.4.6
  shared_preferences: ^0.4.2
  cached_network_image: ^0.4.1
  intl: ^0.15.7
  geolocator: ^2.1.1
  http: ^0.11.3+14
  flutter_google_places: ^0.1.4+1
  location: ^1.1.6
  uuid: ^1.0.3
  auto_size_text: 0.3.0

build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

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
}

app / build.gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.myapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
apply plugin: 'com.google.gms.google-services'  // Gradle plugin

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher.
The following dependencies do not satisfy the required version:
project ':google_api_availability' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71

Решение, которое мы использовали, заключалось в том, чтобы включить пакет и все его зависимости непосредственно в среду сборки флаттера.!!Это может быть не идеально в долгосрочной перспективе, но поможет вам, пока происходит миграция AndroidX и портит ваши сборки.

В pubspec.yaml мы включили конкретные версии, например, так

geolocator: 3.0.0               # AndroidX - Breaking! 
google_api_availability: 1.0.6  # Geolocator Dependency. 
meta: 1.1.6                     # Geolocator Dependency. 
permission_handler: 2.2.0       # Geolocator & Meta Dependency.

Для нас произошел разрыв между google_api_availability v1.0.6 и v2.0.0

. Вы можете узнать, какой пакет зависит от google_api_availability, выполнив инструкции Овидия или открыв https://pub.dartlang.org/ и введите "dependency:google_api_availability" в строке поиска.Также на каждой странице пакета вы можете увидеть зависимости и кто от них зависит.

0 голосов
/ 14 июня 2019

Моя проблема началась с преждевременного закрытия HTTP-соединения.Затем каким-то образом эта проблема изменилась на проблему с Android X.

Чтобы решить эту проблему с android x, я выполнил шаги https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility#not-recommended-manually-migrate-your-app, но вместо этого это привело меня к другой проблеме версии.Я использовал geolocator 1.6.3, и это вызывало API Google, разработанный в kotlin 1.2.x.Для текущей версии 3.4.1 требуется kotlin 1.3.1 и выше, но это было невозможно.Так что было узкое место версии.

Итак

  • Я снизил версию до 3.3.0, и проблема с геолокацией была решена.
  • наконец, я обновил геолокацию до 5.0.1 и gradle до 3.4.1, и все было решено.
0 голосов
/ 15 февраля 2019

Вы можете узнать, какой пакет зависит от google_api_availability, запустив flutter packages pub deps в корне проекта - в нем будут перечислены все прямые и переходные зависимости вашего проекта в виде дерева.

Я не могНе можете найти способ отображения зависимостей плагина пакета - я думаю, вы узнаете об этом только после того, как попытаетесь его собрать.

Проблема в том, что вы используете версию 3.3.1 плагина Android Gradle, который обеспечивает Kotlin 1.3.0 или выше.В то же время пакет geolocator зависит от google_api_availability, который использует Kotlin 1.2.71.На данный момент нет версии google_api_availability, которая использует Kotlin 1.3.0 или выше, поэтому у вас есть только одно решение - понизьте плагин Android Gradle до версии 3.2.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...