自从将flutter 1.9.1 + hotfix.2升级到我运行时flutter build appbundle,flutter以错误结束:
flutter build appbundle
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并以:
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并更改
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每次编译时都要重新构建(不要签入!)
local.properties
a)与 gradle一起 使用flutter build appbundle --release -v,结果是sdk.dir=C:\\....\\AppData\\Local\\Android\\Sdk(无论哪个工具版本)
flutter build appbundle --release -v
sdk.dir=C:\\....\\AppData\\Local\\Android\\Sdk
b)与 IntelliJ 是sdk.dir=C:/..../AppData/Local/Android/Sdk
sdk.dir=C:/..../AppData/Local/Android/Sdk
不幸的是,tools.build:gradle:3.5.0在阅读他们创建的路径时会失败tools.build:gradle:3.4.2。
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上为斜杠,而不是反斜杠!)
set ANDROID_HOME=C:/Users/msc/AppData/Local/Android/Sdk
在那之后, gradle 完成了构建并完成了 Gradle构建,但未能生成Android捆绑包。 这很奇怪,因为 gradle 实际上完成了全部工作。该文件位于:\build\app\outputs\bundle\release\app-release.aab。
\build\app\outputs\bundle\release\app-release.aab
那么,错误信息没有错误?
显然,gradle.tools v3.5.0至少在Windows上存在路径名问题。
还有…另一个提示:检查android\key.properties文件并确保storeFile=设置正确。
android\key.properties
storeFile=
key.properties storeFile=c:/pathToMyKeyStore.jks
*注意:您应该在路径中使用/,而不是*