FLUTTER Android Studio BUMBLEBEE: 生成签名包需要你更新 Android Gradle 插件至版本 3.2.0 或更高版本。

17
当我尝试构建签名包时,AS会抱怨:
生成签名包需要您将Android Gradle插件更新到3.2.0或更高版本
如果我点击“关闭此对话框并更新插件”,则会出现另一个对话框(AS Bumblebee),标题为“更新Android Gradle插件”。如果我点击确定,则对话框消失,什么也没发生,并且在尝试再次构建签名应用包时,我会收到相同的投诉。
这真的很令人沮丧,因为我无法上传带有Google地图的应用程序而不签名。那就是我的整个应用程序!
好吧,类似的问题已经在StackOverflow上回答了几次,但是有些解决方案已经过时,其他解决方案似乎不相关:
1. 我找不到通过“文件>项目结构”在Android Studio Bumblebee中更新Gradle的方法。 2. 如果我尝试在android/build.gradle中手动更新Gradle,那么它已经拥有gradle 7.03,这远高于3.2.0。虽然Gradle和Android Studio的Gradle插件可能具有不同的版本号。请参见下面的代码片段。 3. 我尝试使用Android Studio的搜索框进行“更新Gradle插件”,但没有效果。 4. 我在“首选项> SDK工具”中四处寻找,但没有提到gradle插件。 5. 我尝试生成签名APK而不是使用应用程序包,但是那也有问题,并且文件更大,因此没有简单的解决方案。
这是我android/build.gradle文件中相关的部分:
dependencies {
    classpath 'com.android.tools.build:gradle:7.0.3'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.google.gms:google-services:4.3.5'
}

进一步调查,gradle-wrapper.properties包含以下内容:distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip 这个版本号与我的android/build.gradle不同:classpath 'com.android.tools.build:gradle:7.0.3'
我不确定它们为什么有不同的数字。
这是一个应用程序的最后障碍,也是另一个应用程序的路障,请帮帮忙。我完全迷失了,我开始认为可能是Kotlin插件升级造成了混乱。
更新: 我通过AS的帮助菜单向Google报告了这个问题,在这样做时,报告说...
AS:大黄蜂|2021.1.1;Kotlin插件:211-1.6.10-release-923-AS7442.40;Android Gradle插件:(未找到插件信息);Gradle:(未找到Gradle版本信息);Gradle JDK:版本11.0.11;NDK:来自local.properties:(未指定),最新的SDK:(未找到);LLDB:固定版本3.1未找到,最新的SDK:(未找到);CMake:来自local.properties:(未指定),最新的SDK:(未找到),来自PATH:(未找到)
缺少很多东西!既缺少Gradle,也缺少Gradle插件。我尝试在AS Bumblebee中创建一个新项目,然后请求签名包,但得到了相同的投诉,所以不是因为这些项目花费了一段时间。
任何解决方案都会受到赞赏。我以为只需下载Android Studio就可以了... 唉。
更新:尝试了下面提供的解决方案,但似乎没有设置Gradle位置,如下图所示...

Preferences>Buidl, execution, deployment > build tools > gradle


3
由于这样的原因,我从不立即升级到新版本的Android Studio。 - Andrew S
今天我升级到了AS Bumblebee,它已经稳定了。 - Sam
2
我和你遇到了完全相同的问题,并进行了同样的检查和调查,结果也是一样的。我的应用程序也是Flutter应用程序。有什么消息吗?我现在也陷入了无法创建Bundle的困境中! - VMX
1
你真的需要使用最新版本的gradle吗?我目前使用的是Bumblebee 2021.1.1 Patch 1,搭配Flutter 2.10.0、Dart 2.16.0和DevTools 2.9.2。我的gradle-wrapper.properties配置的distributionUrl是https\://services.gradle.org/distributions/gradle-6.7-all.zip,android/build.gradle上的gradle版本是'com.android.tools.build:gradle:4.1.0'。至少在我的机器上,这就是Flutter默认生成的内容。尝试将你正在使用的版本降低一点,看看是否适用于你。似乎并不需要使用最新的gradle插件。 - Omatt
1
在我的情况下,我打开了 Android 目录而不是根目录,现在我能够创建签名包。 - Van Tho
4个回答

6
最终解决了这个问题。我尝试了问题中提到的所有方法,但仍然出现了错误。 enter image description here 看起来不合逻辑,但对我起作用了。 我关闭了Android Studio中的项目,然后在新的Android Studio窗口中打开我的项目文件夹中的android文件夹,就像下面这样: enter image description here 然后它需要很长时间来下载、分析或其他操作。 您可以看到布局与主项目不同... enter image description here 生成菜单也有更多选项... enter image description here 之后尝试构建应用程序包,一切都很好。我认为在主项目文件中无法生成应用程序包。我们需要切换到android文件夹并生成应用程序包。
最后,我在YouTube上搜索了generate app bundle android studio flutter,并找到了一个以另一种方式构建应用程序包的视频,没有这些麻烦。 https://www.youtube.com/watch?v=g0GNuoCOtaQ

3

最终问题被解决了。在左侧项目文件窗格中,右键单击 Android > 在Android Studio中打开,Gradle 需要很长时间重新索引项目,并提供更新项目 Gradle 版本的选项,这次成功了。HALLEYUH!

我很少发布已签名应用程序,所以我已经忘记了如何进行此操作,而 AS Flutter 插件在插件内部向我提供了 工具 > 构建已签名应用程序包 的选项,这让我远离了过去成功获得已签名应用的方法。

我认为 Flutter 团队如果不能保证其可靠性则不应该提供此选项,但解决方法是回到以前的方式。将 IDE 切换回我认为是“Java 应用程序”视图,耐心等待 AS 获取 Gradle 和 Android SDK 更新并重新索引。然后从那里查找 构建 > 已签名应用程序包

感谢大家的关注,也为浪费您的精力道歉。x Sam


1
我曾经遇到过同样的问题,我的解决方案是使用命令行构建:flutter build appbundle - NeverEndingQueue

1
我通过“Build> Clean Project”清理了项目,然后从底部弹出了一个菜单,要求我同步gradle。点击“sync”按钮后,gradle会自动同步,并在构建应用程序包时不会出现任何问题。

1
在“设置”中,“构建、执行、部署”,“构建工具”,“Gradle”中,我将“使用Gradle”设置为“指定位置”,这导致了构建失败。这可能来自以前的某个版本。我将其更改为“gradle-wrapper.properties文件”,一切都正常了。
我还注意到在Bumblebee中有一个更大的“aab”文件。我知道我添加了东西,但不至于多达8兆字节。它只是代码,也许只有一千行。

我确实找到了我的大小增量。那是一个库。 - Dave Hubbard
Gradle来自哪里?AS Bumblebee给了我“Gradle用户主目录”,但它是灰色的,没有设置。无论如何感谢您的关注和关心。 - Sam

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