flutter 1.9.1+hotfix.2 - 构建 appbundle 失败,但实际上生成了一个 appbundle

Posted

技术标签:

【中文标题】flutter 1.9.1+hotfix.2 - 构建 appbundle 失败,但实际上生成了一个 appbundle【英文标题】:flutter 1.9.1+hotfix.2 - build appbundle failing, but actually producing an appbundle 【发布时间】:2020-01-16 13:17:44 【问题描述】:

自从将flutter 1.9.1+hotfix.2升级到,当我运行flutter build appbundle时,flutter结束报错:

Initializing gradle...                                              0,9s
Resolving dependencies...                                           3,6s
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done                       114,5s
Gradle build failed to produce an android bundle package.

但实际上它确实产生了一个有效的 appbundle,flutter build appbundle -v 以:

[   +2 ms] 161 actionable tasks: 5 executed, 156 up-to-date
[ +361 ms] Running Gradle task 'bundleRelease'... (completed in 75,1s)
[   +7 ms] "flutter appbundle" took 80.137ms.
Gradle build failed to produce an Android bundle package.

#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      _buildGradleProjectV2 (package:flutter_tools/src/android/gradle.dart:780:7)
#2      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:71:64)
#3      _rootRunUnary (dart:async/zone.dart:1132:38)
#4      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#5      _FutureListener.handleValue (dart:async/future_impl.dart:137:18)
#6      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:678:45)
#7      Future._propagateToListeners (dart:async/future_impl.dart:707:32)
#8      Future._completeWithValue (dart:async/future_impl.dart:522:5)
#9      _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:30:15)
#10     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:288:13)

在完成 appbundle 后,gradle 似乎崩溃了。有人有同样的问题或任何想法吗?

我的 Flutter 医生: Flutter 版本 1.9.1+hotfix.2 位于 C:\src\flutter • 框架修订 2d2a1ffec9(8 天前),2019-09-06 18:39:49 -0700 • 引擎修订版 b863200c37 • Dart 版本 2.5.0

[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2) • Android SDK 位于 C:\Users\dirkb\AppData\Local\Android\sdk • Android NDK 位置未配置(可选;对原生分析支持有用) • 平台 android-29,构建工具 29.0.2 • Java 二进制文件位于:C:\Program Files\Android\Android Studio\jre\bin\java • Java 版本 OpenJDK 运行时环境(内部版本 1.8.0_202-release-1483-b03) • 接受所有 Android 许可证。

[√] Android Studio(3.5版) • C:\Program Files\Android\Android Studio 中的 Android Studio • Flutter 插件版本 39.0.3 • Dart 插件版本 191.8423 • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_202-release-1483-b03)

【问题讨论】:

终于找到了问题,但还是没有解决。 flutter appbundle 创建 \build\app\outputs\bundle\release\app-release.aab 但 gradle 期望 \build\app\outputs\bundle\release\app.aab 这是一个已知的错误,应该已经修复,但作为颤振 v1.9.1+hotfix.5 仍然存在。 https://github.com/flutter/flutter/issues/38934 构建 appbundle 时,将其重命名为 app.aab 并再次运行相同的构建,gradle 完成没有错误。 【参考方案1】:

这并不奇怪,这是一个错误。即使一切顺利,gradle 也会显示错误消息。

解决方案

编辑您的build.gradle 并更改

classpath 'com.android.tools.build:gradle:3.5.0'

到:

classpath 'com.android.tools.build:gradle:3.4.2'

详情

我在 tools.build:gradle:3.5.0 中遇到了两个错误:

首先,local.properties 每次编译时都会重新构建,(不要签入!)

a) 使用 gradle,使用flutter build appbundle --release -v 结果为sdk.dir=C:\\....\\AppData\\Local\\Android\\Sdk(无论哪个工具版本)

b) IntelliJsdk.dir=C:/..../AppData/Local/Android/Sdk

不幸的是,tools.build:gradle:3.5.0 在读取他们创建的路径时失败,tools.build:gradle:3.4.2 工作的路径。

我想用 v3.5.0 的工具来做这个:

set ANDROID_HOME=C:/Users/msc/AppData/Local/Android/Sdk (斜线,不是反斜线,在 Windows 上!!)

之后,gradle 进行了构建并完成了 Gradle 构建未能生成 Android 捆绑包。 这很奇怪,因为 gradle 实际上完成了全部工作。文件在那里:\build\app\outputs\bundle\release\app-release.aab

那么,错误信息没有错误?

显然 gradle.tools v3.5.0 的路径名有问题,至少在 Windows 上是这样。

而且...还有一个提示:检查您的android\key.properties 文件并确保storeFile= 设置正确。

key.properties storeFile=c:/pathToMyKeyStore.jks

注意:您应该在路径中使用 /,而不是 \

【讨论】:

【参考方案2】:

我也遇到过这个问题。您目前无法在 Flutter 中创建应用程序包,创建 aab 时文件命名存在错误。只需使用 Android Studio 创建 aab 文件即可。

Build > Build APK/Bundle > Build Bundle(s)

编辑:奖金,没有被问到,但如果有人还不知道,可能会有所帮助。我有一些用户无法使用我的应用程序。将以下内容添加到您的 gradle 文件中,以确保 app bundle 包含以下库。

android 
    defaultConfig 
        //add the following
        ndk 
            abiFilters "x86", "x86_64", "armeabi", "armeabi-v7a", "arm64-v8a"
        
    

【讨论】:

有趣的是,对我来说,Android Studio 中的 Build Bundle 是灰色的,但 flutter build appbundle 会创建一个完美的 aab 文件,尽管有错误消息。它已上传到 Google Play,到目前为止我没有听说任何问题。 @dirkbo,非常奇特。你在哪个频道?我通常在 dev 上开发,但最近我的版本改为 beta 版。 我实际上是稳定的...我尝试了一些flutter clean,但仍然存在...至少 aab 构建正常,所以我可以忍受它,但是...这很奇怪...【参考方案3】:

设置路径上是android/app/build.gradle:

试试这个: minifyEnabled 错误

【讨论】:

【参考方案4】:

我遇到了这个问题,这就是我所做的:

1.删除“.idea”文件夹和“build”文件夹以及“pubspec-lock”文件。 2.然后在我的控制台中运行flutter pub get

它应该工作

【讨论】:

以上是关于flutter 1.9.1+hotfix.2 - 构建 appbundle 失败,但实际上生成了一个 appbundle的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:在 iOS 中更改状态栏颜色

我可以使用 flutter_webview_plugin 在 appBar 中实现菜单吗?

powershell get-hotfix2正确缺少了get-hotfix cmdlet的日期(信用到http://powershell.com/cs/forums/p/12409/21917.asp

V-Ray Next for Maya, Hotfix 2

[2020.11.12]《X4:基石》更新v3.30 Hotfix 2.0版本 - 整合版

[3dsmax] Corona Renderer 5超写实照片级渲染器3dsmax插件HOTFIX 2版