为什么升级到 AGP 8.3.0-alpha06 会导致构建失败并显示“参数‘提供者’未传递任何值”

Hec*_*tor 7 android gradle android-studio gradle-kotlin-dsl

我已经将我的 android studio 版本升级到

Android Studio Iguana | 2023.2.1 Canary 6
Build #AI-232.9921.47.2321.10875067, built on September 28, 2023
Runtime version: 17.0.8+0-17.0.8b1000.22-10799086 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 12.6.1
GC: G1 Young Generation, G1 Old Generation
Memory: 5120M
Cores: 12
Metal Rendering is ON
Registry:
    external.system.auto.import.disabled=true
    debugger.new.tool.window.layout=true
    ide.text.editor.with.preview.show.floating.toolbar=false
    ide.instant.shutdown=false
    ide.experimental.ui=true
    ide.images.show.chessboard=true

Non-Bundled Plugins:
    com.github.rmehri01.onenord (0.0.7)
    com.arcticicestudio.nord.jetbrains (0.13.0)
Run Code Online (Sandbox Code Playgroud)

和 AGP 版本8.3.0-alpha06

现在我的构建在这两行上失败了

import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties

val googleApiKey: String = gradleLocalProperties(rootDir).getProperty("GOOGLE_API_KEY")
val googleCrashReportingApiKey: String = gradleLocalProperties(rootDir).getProperty("GOOGLE_CRASH_REPORTING_API_KEY")


* What went wrong:
Script compilation errors:

  Line 16: val googleApiKey: String = gradleLocalProperties(rootDir).getProperty("GOOGLE_API_KEY")
                                                            ^ No value passed for parameter 'providers'

  Line 17: val googleCrashReportingApiKey: String = gradleLocalProperties(rootDir).getProperty("GOOGLE_CRASH_REPORTING_API_KEY")
                                                                          ^ No value passed for parameter 'providers'

2 errors
Run Code Online (Sandbox Code Playgroud)

我猜rootDirnull,但是我该如何解决这个问题?根本原因是什么?

我现在已升级到 Canary 7,在尝试升级 AGP 时遇到此问题

在此输入图像描述

我通过替换解决了这个问题

val properties = Properties().apply { load(FileInputStream(File(rootProject.rootDir, "local.properties"))) }

val googleApiKey: String = properties.getProperty("GOOGLE_API_KEY")
val googleCrashReportingApiKey: String = properties.getProperty("GOOGLE_CRASH_REPORTING_API_KEY")
Run Code Online (Sandbox Code Playgroud)

Vin*_*nce 0

我通过替换这个解决了这个问题:

gradleLocalProperties(rootDir).getProperty("GOOGLE_API_KEY")
Run Code Online (Sandbox Code Playgroud)

通过添加providers这样的参数:

gradleLocalProperties(rootDir, providers).getProperty("GOOGLE_API_KEY")
Run Code Online (Sandbox Code Playgroud)