我目前正在尝试使用Flutter在Windows上构建签名发行的APK。我已经执行了flutter网站上的文档中概述的任务。当我运行build命令时,这是我得到的输出。似乎是在Firebase插件周围。有任何想法吗?
dependencies: flutter: sdk: flutter firebase_auth: 0.4.0 firebase_database: ^0.3.0
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/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。