firebase - 无法为 flutter 构建发布 APK

我目前正在尝试使用 Flutter 在 Windows 上构建签名发布 APK。我已经完成了 flutter 网站上文档中概述的任务。当我运行构建命令时,这是我得到的输出。它似乎在 firebase 插件周围。有什么想法吗?

pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  firebase_auth: 0.4.0
  firebase_database: ^0.3.0

flutter 医生输出

    C:\Users\myuser\projects\myflutterapp>flutter doctor
    [√] Flutter (on Microsoft Windows [Version 10.0.16299.125], locale en-US, channel alpha)
        • Flutter at C:\Users\myuser\flutter
        • Framework revision 8f65fec5f5 (3 weeks ago), 2017-12-12 09:50:14 -0800
        • Engine revision edaecdc8b8
        • Tools Dart version 1.25.0-dev.11.0
        • Engine Dart version 2.0.0-edge.d8ae797298c3a6cf8dc9f4558707bd2672224d3e

    [√] Android toolchain - develop for Android devices (Android SDK 27.0.1)
        • Android SDK at C:\Users\myuser\AppData\Local\Android\Sdk
        • Android NDK at C:\Users\myuser\AppData\Local\Android\Sdk\ndk-bundle
        • Platform android-27, build-tools 27.0.1
        • ANDROID_HOME = C:\Users\myuser\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_152-release-915-b01)

    [√] Android Studio (version 3.0)
        • Android Studio at C:\Program Files\Android\Android Studio
        • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

    [-] Connected devices
        • None

错误日志信息

    C:\Users\myuser\projects\myflutterapp>flutter build apk --release
    Initializing gradle...                                0.9s
    Resolving dependencies...                             1.1s
    Running 'gradlew assembleRelease'...
    Configuration 'debugCompile' in project ':app' is deprecated. Use 'debugImplementation' instead.
    Configuration 'profileCompile' in project ':app' is deprecated. Use 'profileImplementation' instead.
    Configuration 'releaseCompile' in project ':app' is deprecated. Use 'releaseImplementation' instead.
    Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
    registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
    registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
    registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
    Configuration 'debugProvided' in project ':firebase_auth' is deprecated. Use 'debugCompileOnly' instead.
    Configuration 'releaseProvided' in project ':firebase_auth' is deprecated. Use 'releaseCompileOnly' instead.
    Configuration 'compile' in project ':firebase_core' is deprecated. Use 'implementation' instead.
    Configuration 'debugProvided' in project ':firebase_core' is deprecated. Use 'debugCompileOnly' instead.
    Configuration 'releaseProvided' in project ':firebase_core' is deprecated. Use 'releaseCompileOnly' instead.
    Configuration 'debugProvided' in project ':firebase_database' is deprecated. Use 'debugCompileOnly' instead.
    Configuration 'releaseProvided' in project ':firebase_database' is deprecated. Use 'releaseCompileOnly' instead.
    Skipping AOT snapshot build. Fingerprint match.

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':app:lintVitalRelease'.
    > Could not resolve all artifacts for configuration ':app:profileRuntimeClasspath'.
    > Could not resolve project :firebase_auth.
        Required by:
            project :app
        > Unable to find a matching configuration of project :firebase_auth:
            - Configuration 'debugApiElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'debug'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found incompatible value 'java-api'.
            - Configuration 'debugRuntimeElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'debug'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found compatible value 'java-runtime'.
            - Configuration 'releaseApiElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'release'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found incompatible value 'java-api'.
            - Configuration 'releaseRuntimeElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'release'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found compatible value 'java-runtime'.
    > Could not resolve project :firebase_database.
        Required by:
            project :app
        > Unable to find a matching configuration of project :firebase_database:
            - Configuration 'debugApiElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'debug'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found incompatible value 'java-api'.
            - Configuration 'debugRuntimeElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'debug'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found compatible value 'java-runtime'.
            - Configuration 'releaseApiElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'release'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found incompatible value 'java-api'.
            - Configuration 'releaseRuntimeElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'release'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found compatible value 'java-runtime'.
    > Could not resolve project :firebase_core.
        Required by:
            project :app
        > Unable to find a matching configuration of project :firebase_core:
            - Configuration 'debugApiElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'debug'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found incompatible value 'java-api'.
            - Configuration 'debugRuntimeElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'debug'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found compatible value 'java-runtime'.
            - Configuration 'releaseApiElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'release'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found incompatible value 'java-api'.
            - Configuration 'releaseRuntimeElements':
                - Required com.android.build.api.attributes.BuildTypeAttr 'profile' and found incompatible value 'release'.
                - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' and found compatible value 'Aar'.
                - Found com.android.build.gradle.internal.dependency.VariantAttr 'release' but wasn't required.
                - Required org.gradle.api.attributes.Usage 'java-runtime' and found compatible value 'java-runtime'.

    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    * Get more help at https://help.gradle.org

    BUILD FAILED in 38s
    Gradle build failed: 1

最佳答案

事实证明,处理此问题的最佳方法是在 android/app/build.gradle 中进行以下更改:

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.3'
    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "com.example.app"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    // This is the main section that I've updated
    // to get the release APK to build
    buildTypes {
        release {
            profile {
                matchingFallbacks = ['debug', 'release']
            }
            signingConfig signingConfigs.release
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

apply plugin: 'com.google.gms.google-services'

通过此更改,我能够构建发布版 APK。

https://stackoverflow.com/questions/48054291/

相关文章:

dart - Flutter 删除目录文件

android - 如何从 Flutter App 连接 Ms SQL?

android-studio - flutter Android Studio : Error re

dart - 在小部件树中使用 const 会提高性能吗?

dart - 回复 : create a dropdown button in flutter

dart - 在 flutter 中使用底部导航栏在页面之间传递数据

flutter - 具有水平、未填充子项的 PageView

dart - Flutter:使用 SlideTransition

flutter - 如何在等待来自后端 API 的数据时最初显示 RefreshIndicator?

dart - 如何检查 Flutter Text 小部件是否溢出