为什么我会收到这个异常:Could not initialize class com.android.build.gradle.internal.TaskManager?

3

我正在使用VS Code。所有其他项目都运行良好。我正在终端上使用命令“flutter run”在真实设备上运行项目。为什么会出现以下错误:

失败:构建异常。

  • 位置: 构建文件'C:\ Users \ hp \ Documents \ flutter-mobile-app \ android \ app \ build.gradle'第24行
  • 出了什么问题: 评估项目时发生问题':app'。 无法初始化com.android.build.gradle.internal.TaskManager类

这是我的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.")
}

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 plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    lintOptions {
        disable 'InvalidPackage'
        disable "Instantiatable"
        checkReleaseBuilds false
        abortOnError false
    }

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

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.otobucks.app"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
        minSdkVersion 21
        targetSdkVersion 31
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }
    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-jdk8:$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'

    implementation 'com.android.support:multidex:1.0.3'
    implementation platform('com.google.firebase:firebase-bom:26.8.0')
    implementation 'com.google.firebase:firebase-messaging'
}

这是我的 android/build.gradle 文件

buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
        google()
        mavenCentral()
    }

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

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我的Java Home,在此之前我使用的是jdk 1.8.0_291 java home path

以及我的Gradle属性:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

1
你更改Java版本的原因是什么? - Patrick
我认为Java SDK是兼容的或者已经损坏。请查看这个回答:https://stackoverflow.com/a/68330970/7670665 - SoloWolf93
@SoloWolf93 你可能是指“不兼容”吧? - dpr
@AliPunjabi,你能增加更多的调试输出吗?我认为你可以运行flutter doctor来获取更多的见解,或者直接运行gradle命令gradlew assemble --stacktrace(或类似命令)。 - dpr
@dpr你可以在此处检查所有输出,使用不同的gradle和kotlin版本和插件: https://github.com/flutter/flutter/issues/115477 - Ali Punjabi
显示剩余2条评论
2个回答

1

请尝试使用 classpath 'com.android.tools.build:gradle:4.1.0' 并运行应用程序。

如果问题仍然存在,请使用以下内容创建新的应用程序并提供日志。

确保您的Java版本是最新的,而不是像Java8或9这样过时的版本,这样应该可以解决问题。


尝试了4.1.0版本,但仍然无法工作。 - Ali Punjabi
相同的错误? - Abdullatif Eida
请确保您的Java版本是最新的,而不是像Java8或9这样过时的版本。 - Abdullatif Eida
在一个“回答”帖子中为什么要说“提前感谢”? - starball
为什么不要说“先谢谢了”? - Abdullatif Eida

1
可能会出现类路径构建gradle版本的问题,所以您可以更改版本并尝试与Google服务版本匹配。
dependencies {
    classpath 'com.android.tools.build:gradle:7.2.0'
    classpath 'com.google.gms:google-services:4.3.15'

1
嗨,Meet,欢迎来到SO!下次,请在以后使用代码而不是截图 :) - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接