android - 添加 google_maps_flutter 后“flutter build apk”命令失败
问题描述
我是 Flutter 和 android 开发的新手。使用命令构建 apk 文件时出现问题flutter build apk
,它显示如下错误
C:\src\flutter_projects\beresin>flutter build apk
You are building a fat APK that includes binaries for android-arm,
android-arm64, android-x64.
If you are deploying the app to the Play Store, it's recommended to use app
bundles or split the APK to reduce the APK size.
To generate an app bundle, run:
flutter build appbundle --target-platform
android-arm,android-arm64,android-x64
Learn more on: https://developer.android.com/guide/app-bundle
To split the APKs per ABI, run:
flutter build apk --target-platform
android-arm,android-arm64,android-x64 --split-per-abi
Learn more on:
https://developer.android.com/studio/build/configure-apk-splits#configu
e-abi-split
Running Gradle task 'assembleRelease'...
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':adhara_socket_io:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Wo
kers$ActionFacade
> Android resource linking failed
C:\Users\BERESIN\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a84
18244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource
android:attr/fontVariationSettings not found.
C:\Users\BERESIN\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a84
18244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource
android:attr/ttcIndex not found.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 28s
Running Gradle task 'assembleRelease'... 29.7s
The built failed likely due to AndroidX incompatibilities in a plugin. The tool
is about to try using Jetfier to solve the incompatibility.
Building plugin adhara_socket_io...
Running Gradle task 'assembleAarRelease'... 1.8s
√ Built build\app\outputs\repo.
Building plugin flutter_plugin_android_lifecycle...
Running Gradle task 'assembleAarRelease'... 1.3s
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\src\flutters\.pub-cache\hosted\pub.dartlang.org\flutter_plugin_a
droid_lifecycle-1.0.6\android\build.gradle' line: 22
* What went wrong:
A problem occurred evaluating root project 'flutter_plugin_android_lifecycle'.
> Failed to apply plugin [id 'com.android.library']
> Minimum supported Gradle version is 5.4.1. Current version is 4.10.2. If u
ing the gradle wrapper, try editing the distributionUrl in C:\src\flutters\.pub
cache\hosted\pub.dartlang.org\flutter_plugin_android_lifecycle-1.0.6\android\gr
dle\wrapper\gradle-wrapper.properties to gradle-5.4.1-all.zip
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
The plugin flutter_plugin_android_lifecycle could not be built due to the issue
above.
经过很长时间在谷歌上搜索解决方案后,我找到了解决该问题的答案。我按照建议将 .pub-cache 文件夹中flutter_plugin_android_lifecycle 包中的gradle 的distributionUrl 更改为5.4.1,但这会导致另一个类似这样的错误。
C:\src\flutter_projects\beresin>flutter build apk
You are building a fat APK that includes binaries for android-arm,
android-arm64, android-x64.
If you are deploying the app to the Play Store, it's recommended to use app
bundles or split the APK to reduce the APK size.
To generate an app bundle, run:
flutter build appbundle --target-platform
android-arm,android-arm64,android-x64
Learn more on: https://developer.android.com/guide/app-bundle
To split the APKs per ABI, run:
flutter build apk --target-platform
android-arm,android-arm64,android-x64 --split-per-abi
Learn more on:
https://developer.android.com/studio/build/configure-apk-splits#configur
e-abi-split
Running Gradle task 'assembleRelease'...
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':adhara_socket_io:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Wor
kers$ActionFacade
> Android resource linking failed
C:\Users\BERESIN\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a843
18244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource
android:attr/fontVariationSettings not found.
C:\Users\BERESIN\.gradle\caches\transforms-2\files-2.1\0a271e99b6771ad4a843
18244d532fb7\core-1.0.0\res\values\values.xml:57:5-88:25: AAPT: error: resource
android:attr/ttcIndex not found.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 15s
Running Gradle task 'assembleRelease'... 16.3s
The built failed likely due to AndroidX incompatibilities in a plugin. The tool
is about to try using Jetfier to solve the incompatibility.
Building plugin adhara_socket_io...
Running Gradle task 'assembleAarRelease'... 1.6s
√ Built build\app\outputs\repo.
Building plugin flutter_plugin_android_lifecycle...
Running Gradle task 'assembleAarRelease'... 32.1s
Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reus
ed, use --status for details
> Task :assembleAarRelease UP-TO-DATE
> Task :preBuild UP-TO-DATE
> Task :preReleaseBuild UP-TO-DATE
> Task :compileReleaseAidl NO-SOURCE
> Task :compileReleaseRenderscript NO-SOURCE
> Task :checkReleaseManifest
> Task :generateReleaseBuildConfig
> Task :generateReleaseResValues
> Task :generateReleaseResources
> Task :packageReleaseResources
> Task :mergeReleaseShaders
> Task :compileReleaseShaders
> Task :generateReleaseAssets
> Task :packageReleaseAssets
> Task :packageReleaseRenderscript NO-SOURCE
> Task :parseReleaseLibraryResources
> Task :processReleaseJavaRes NO-SOURCE
> Task :mergeReleaseJniLibFolders
> Task :processReleaseManifest
> Task :prepareLintJarForPublish
> Task :javaPreCompileRelease
> Task :mergeReleaseNativeLibs
> Task :stripReleaseDebugSymbols
> Task :transformNativeLibsWithSyncJniLibsForRelease
> Task :generateReleaseRFile
> Task :compileReleaseJavaWithJavac FAILED
17 actionable tasks: 17 executed
C:\src\flutters\.pub-cache\hosted\pub.dartlang.org\flutter_plugin_android_lifecy
cle-1.0.6\android\src\main\java\io\flutter\embedding\engine\plugins\lifecycle\Fl
utterLifecycleAdapter.java:8: error: package androidx.lifecycle does not exist
import androidx.lifecycle.Lifecycle;
^
C:\src\flutters\.pub-cache\hosted\pub.dartlang.org\flutter_plugin_android_lifecy
cle-1.0.6\android\src\main\java\io\flutter\embedding\engine\plugins\lifecycle\Fl
utterLifecycleAdapter.java:22: error: cannot find symbol
public static Lifecycle getActivityLifecycle(
^
symbol: class Lifecycle
location: class FlutterLifecycleAdapter
2 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 31s
The plugin flutter_plugin_android_lifecycle could not be built due to the issue
above.
在我的 pubspec.yaml 文件中,我只在依赖项中安装了 2 个新包:
adhara_socket_io: ^0.4.1
google_maps_flutter: ^0.5.25+3
这是我的颤振医生输出
C:\src\flutter_projects\beresin>flutter doctor -v
[√] Flutter (Channel stable, v1.12.13+hotfix.7, on Microsoft Windows [Version
6.1.7601], locale en-US)
• Flutter version 1.12.13+hotfix.7 at C:\src\flutters
• Framework revision 9f5ff2306b (3 months ago), 2020-01-26 22:38:26 -0800
• Engine revision a67792536c
• Dart version 2.7.0
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\BERESIN\AppData\Local\Android\Sdk
• Android NDK location not configured (optional; useful for native profiling
support)
• Platform android-29, build-tools 28.0.3
• ANDROID_HOME = C:\Users\BERESIN\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build
1.8.0_212-release-1586-b04)
• All Android licenses accepted.
[√] Android Studio (version 3.6)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 45.1.1
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build
1.8.0_212-release-1586-b04)
[√] VS Code (version 1.44.1)
• VS Code at C:\Users\BERESIN\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.9.1
[√] Connected device (1 available)
• Mi A2 Lite • 04ab7a9f0405 • android-arm64 • Android 9 (API 28)
• No issues found!
任何答案将不胜感激
解决方案
所以,几个小时后......我注意到adhara_socket_io
包导致了问题,然后我决定找到其他库来处理 socket.io 连接并尝试了 pub.dev 上的每个包。有一个类似名称socket_io_flutter
但看起来更新的包。所以我尝试构建它,但我得到了同样的错误。
然后我在这里发现了一个类似错误的问题Execution failed for task ':flutter_twitter:verifyReleaseResources'
我把包的build.gradle文件compileSdkVersion改成28,把gradle classpath改成classpath 'com.android.tools.build:gradle:3.5.3'
它有效。我了解到每个库都没有使用相同版本的构建工具,其中一些没有维护。
如果我错了,请纠正我。如果有更好的解释,请在此处发布,以便像我这样的初学者可以了解更多信息。
推荐阅读
- python - 在 Tensorflow 2 中向 LSTM 内核象征性地添加另一个变量
- swift - 为什么使用计算属性来分配图像?
- kotlin - 生产模式下的 Kotlin/JS 错误:未捕获的 TypeError:属性描述符必须是对象,未定义
- node.js - 反应本机中的复选框条件
- javascript - TypeError:无法读取未定义(电子)的属性“要求”
- sql - 查找两次之间放置的订单给出零结果
- heroku - 如何登录heroku
- mysql - 带有原始数据库查询的 Laravel 8 收集过滤器
- javascript - 将 2d json(?) 数组转换为 pandas 数据框
- html - 如何强制 img 元素采用其父元素的宽度和高度?