flutter 问题解决记录

1,714 阅读2分钟

Android 编译

问题1:  当执行flutter build apk 或 flutter run apk 时, 如出现以下错误日志:

Gradle task assemblePkgDebug failed with exit code 1

#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      _buildGradleProjectV2 (package:flutter_tools/src/android/gradle.dart:751:5)
<asynchronous suspension>
#2      buildGradleProject (package:flutter_tools/src/android/gradle.dart:494:14)
<asynchronous suspension>
#3      buildApk (package:flutter_tools/src/android/apk.dart:34:9)
<asynchronous suspension>
#4      BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:79:11)
<asynchronous suspension>
#5      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:490:18)
#6      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:71:64)
#7      _rootRunUnary (dart:async/zone.dart:1132:38)
#8      _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#9      _FutureListener.handleValue (dart:async/future_impl.dart:137:18)
#10     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:678:45)
#11     Future._propagateToListeners (dart:async/future_impl.dart:707:32)
#12     Future._completeWithValue (dart:async/future_impl.dart:522:5)
#13     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:552:7)
#14     _rootRun (dart:async/zone.dart:1124:13)
#15     _CustomZone.run (dart:async/zone.dart:1021:19)
#16     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#17     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#18     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#19     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#20     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:116:13)
#21     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:173:5)

解决:  在具体命令增加-v 参数

flutter run apk -v

得到具体的日志, 部分如下

[        ] > Task :image_picker:generateDebugRFile UP-TO-DATE
[        ] > Task :package_info:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :package_info:generateDebugRFile UP-TO-DATE
[        ] > Task :path_provider:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :path_provider:generateDebugRFile UP-TO-DATE
[        ] > Task :permission_handler:parseDebugLibraryResources UP-TO-DATE
[ +101 ms] > Task :permission_handler:generateDebugRFile UP-TO-DATE
[        ] > Task :tobias:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :tobias:generateDebugRFile UP-TO-DATE
[        ] > Task :udid:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :udid:generateDebugRFile UP-TO-DATE
[        ] > Task :umeng_uapp:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :umeng_uapp:generateDebugRFile UP-TO-DATE
[        ] > Task :url_launcher:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :url_launcher:generateDebugRFile UP-TO-DATE
[        ] > Task :webview_flutter:parseDebugLibraryResources UP-TO-DATE
[        ] > Task :webview_flutter:generateDebugRFile UP-TO-DATE
[ +700 ms] > Task :app:processPkgDebugResources FAILED
[        ]          *********************************************************
[        ] WARNING: This version of android_intent will break your Android build if it or its dependencies aren't compatible with AndroidX.
[        ]          See https://goo.gl/CP92wY for more information on the problem and how to fix it.
[        ]          This warning prints for all Android build failures. The real root cause of the error may be unrelated.
[        ]          *********************************************************
[        ] 191 actionable tasks: 15 executed, 176 up-to-date
[ +384 ms] Running Gradle task 'assemblePkgDebug'... (completed in 26.8s)
[   +3 ms] "flutter apk" took 31,392ms.

不要被"WARNING"误导(warning是插件在flutter build出错时输出, 但不是导致出错的根本原因)

定位到"FAILED"行: [ +700 ms] > Task :app:processPkgDebugResources FAILED

这才是build失败的原因: 可能是加载Android资源失败导致

打开Android Studio仔细处理IDE 的错误提示(Error 级别)

总结: 查看build日志中 FAILED 行, 不要被 WARNING 误导, 具体 case 具体处理即可