所以今晚我在 Android Studio 中构建了一个必须签名的测试 APK。它失败了,并说我的 Gradle 已过时。所以我将我的 gradle 从 7.3.3 升级到最新的 7.5.1
我将包装设置更改为
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
然后我将 build.gradle 依赖项更改为 classpath 'com.android.tools.build:gradle:7.5.1'
请注意,完成更改并重新启动 Android Studio 后,它确实升级了应用程序目录中的版本。
这是下面抛出的错误:
* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all files for configuration ':classpath'.
> Could not find com.android.tools.build:gradle:7.5.1.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.5.1/gradle-7.5.1.pom
- https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/7.5.1/gradle-7.5.1.pom
Required by:
project :
请注意,这是一个客户的项目,最初不是我写的。这些依赖项已经到位,但相当新,并且该应用程序可以使用 7.3.3 构建良好。但是它不允许我签署我的应用程序。
我想我可以在这两个问题上运用一些智慧。我要做的是返回到版本 7.3.3,再次构建签名的 APK,然后复制该确切的错误以在此处报告。这是一个 gradle 版本错误。
对于像我这样的 Flutter 菜鸟来说,出现此错误是因为 Android Tools Plugin 版本与 Gradle 版本不匹配:
https://developer.android.com/studio/releases/gradle-plugin#groovy
它们在数量上匹配得足够模糊,以至于你会认为我的行
com.android.tools.build:gradle:7.5.1.
使用gradle 7.5.1,但相反,Android Tools for Gradle实际上是一个单独的实体,在输入此回复时为7.3.3。
因此,您可以将 Gradle 设置为项目中其他位置的最新版本,但它必须与此处设置的兼容 Android Tools 版本相匹配。一开始它很愚蠢且令人困惑,并且很容易让新手绊倒。希望版本有足够的差异,或者代码语法发生变化以获得更好的清晰度,但到目前为止,就是这样。
虽然有 Gradle 7.5.1,但是没有 Android Gradle Plugin
7.5.1
,请参阅相关问题。 “7”系列中的最大值是 7.4.2
。
尝试使用这些并再次构建项目:
classpath 'com.android.tools.build:gradle:7.4.2'
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
我在启动react-native项目时遇到了类似的问题。 npm install form 项目文件夹解决了这个问题。