Flutter 问题:“无法解决配置 ':classpath' 的所有工件”

Jud*_*ing 23 gradle android-studio flutter

我正在尝试运行我正在我的设备上编写的 flutter 应用程序,但是当我尝试运行时,我从未通过“assembleDebug”阶段并在终端中收到此消息:

Launching lib\main.dart on SM N950U in debug mode...
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find com.android.tools.build:gradle:5.6.2.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/5.6.2/gradle-5.6.2.pom
       - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/5.6.2/gradle-5.6.2.jar
       - https://jcenter.bintray.com/com/android/tools/build/gradle/5.6.2/gradle-5.6.2.pom
       - https://jcenter.bintray.com/com/android/tools/build/gradle/5.6.2/gradle-5.6.2.jar
     Required by:
         project :

* 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 14s
Finished with error: Gradle task assembleDebug failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

我最近更新到 gradle 6.0.1(我认为我做对了,但我对这一切都很陌生)并且 flutter doctor 没有问题。

这是我的项目级 build.gradle:

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:5.6.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.3'
    }
}

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
}
Run Code Online (Sandbox Code Playgroud)

这是应用级别的 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.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

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

android {
    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

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

    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 {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    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'
Run Code Online (Sandbox Code Playgroud)

这是我的 Gradle 包装器属性,以防它们也很重要。

#Fri Jun 23 08:50:38 CEST 2017
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
Run Code Online (Sandbox Code Playgroud)

gradle.properties

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=true
Run Code Online (Sandbox Code Playgroud)

Ben*_*min 22

您正在尝试使用实际的 Gradle。对于 Android 开发,有一个 Android Gradle,它目前在本月发布的 3.5.3 版上。阅读这篇文章:https : //developer.android.com/studio/releases/gradle-plugin#3-5-0

编辑:要使用最新版本的 Android Gradle (3.5.3),您需要 5.4.1-5.6.4 之间的 Gradle 版本,您可以在gradle-wrapper.properties文件中配置。我猜 Android Gradle 还不支持 Gradle 6。

  • 将 `classpath 'com.android.tools.build:gradle:5.6.2'` 设置为 `classpath 'com.android.tools.build:gradle:3.5.3'` (6认同)
  • 请按照以下步骤操作:/sf/answers/3840038961/。您需要正确迁移到AndroidX (2认同)

小智 16

问题可能是由更新gradle引起的。Android Studio 总是要求您更新它,但不要对 Flutter 应用程序执行此操作。我有同样的问题,我用以下版本解决了:

在 build.gradle 模块级别:

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
Run Code Online (Sandbox Code Playgroud)

在 build.gradle 应用程序级别:

compileSdkVersion 28
targetSdkVersion 28

Run Code Online (Sandbox Code Playgroud)

在 gradle-wrapper.properties 上:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我通过在 1.20 稳定版本上创建一个新的 Flutter 应用程序来获得所有这些版本。

  • 这是一个非常好的解决方法,可以退回到 Flutter 推荐的 Gradle。谢谢 (2认同)

小智 10

有时您需要运行 flutter pub upgrade。


s_k*_*n92 8

我遇到了与 VPN(家庭办公室)连接的问题,但是一旦我断开 VPN 连接,它就会运行。所以,有网络问题。