flutter 1.9.1 + hotfix.2-构建appbundle失败,但实际上产生了一个appbundle
问题内容:
自从将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.
但实际上它确实产生了一个有效的附件,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)
似乎在完成该捆绑包后gradle崩溃了。任何人都有相同的问题或想法吗?
我的Flutter医生:位于C:\ src \ flutter的Flutter 1.9.1 +
hotfix.2版本•框架修订版2d2a1ffec9(8天前),2019-09-06 18:39:49
-0700•引擎修订版b863200c37•Dart版本2.5 .0
[√] Android工具链-为Android设备开发(Android SDK版本29.0.2)•位于C:\ Users \ dirkb \ AppData
\ Local \ Android \ sdk的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)
问题答案:
这并不奇怪,它是一个错误。即使一切顺利,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)与 IntelliJ 是sdk.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
*注意:您应该在路径中使用/,而不是*