Flutter / Gradle 构建问题

问题描述 投票:0回答:1

最近尝试向我的 flutter 应用程序添加一些 Firebase 功能,这需要我在 Gradle 文件中动手。在某个时刻,Gradle 构建完全停止工作。我试图解决这些问题,结果却给我带来了更多麻烦。我在 Flutter 中几乎没有发挥作用,但 Gradle 对我来说完全是个谜。以至于我收到的错误消息对我来说都没有真正的意义。

上下文:

  • Android Studio:2024.1.2
  • 颤动:3.24.2
  • 飞镖:3.5.2
  • 开发工具:2.37.2
  • 等级:8.9

android/build.gradle:

allprojects {
    repositories {
        google()
        mavenCentral()
        // [required] background_fetch
//        maven { url "${project(':background_fetch').projectDir}/libs" }
    }
}

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

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}
//
ext {
    compileSdkVersion   = 34
    targetSdkVersion    = 34
    appCompatVersion    = "1.4.2"
}

app/build.gradle:

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
    id "com.google.gms.google-services"
}

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"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
    compileSdkVersion 34
    ndkVersion flutter.ndkVersion
//    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

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

    defaultConfig {
        applicationId "com.DOMAIN.APP"
        minSdkVersion 23
        targetSdkVersion 34
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
//        targetSdkVersion rootProject.ext.targetSdkVersion
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

}



flutter {
    source '../..'
}

dependencies {
    implementation 'com.google.firebase:firebase-analytics:21.0.0'
    implementation 'com.google.firebase:firebase-storage:20.0.0'
}

组装调试错误:

Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/drewmoe/Projects/APP/android/build.gradle' line: 15

* What went wrong:
A problem occurred evaluating root project 'android'.
> A problem occurred configuring project ':app'.
   > Could not create task ':app:copyFlutterAssetsDebug'.
      > Could not create task ':app:mergeDebugAssets'.
         > Cannot use @TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method.

我假设我的 gradle 代码绝对是不良实践的噩梦:因为我一无所知,所以我试图避免碰它,并且只能通过尝试/错误来继续开发。

知道问题可能是什么吗?我完全不知所措。不知道 IncrementalTask.taskAction 到底指的是什么?我在我的应用程序上取得了一些相当惊人的进展,直到这完全让我失望。

flutter android-studio gradle build.gradle gradle-plugin
1个回答
0
投票

对我来说,将

com.android.application
文件中的
settings.gradle
版本从 7.2.2 升级到 7.3.0 解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.