首页 > 解决方案 > 添加 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!

任何答案将不胜感激

标签: androidfluttergradle

解决方案


所以,几个小时后......我注意到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'

它有效。我了解到每个库都没有使用相同版本的构建工具,其中一些没有维护。

如果我错了,请纠正我。如果有更好的解释,请在此处发布,以便像我这样的初学者可以了解更多信息。


推荐阅读