繁体   English   中英

获取 cloud_firestore:0.9.0 依赖项会破坏 Flutter 应用程序

[英]getting cloud_firestore: 0.9.0 dependency breaks flutter app

我已将cloud_firestore: ^0.9.0包添加到我的新 flutter 项目中,因此我创建了一个新的 flutter 项目,仅用于测试 Firebase 包。

并在“打包获取”并启动项目之后出现此错误。

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Gradle task 'assembleDebug'...
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not resolve com.google.firebase:firebase-firestore:17.1.0.
  Required by:
      project :app > project :cloud_firestore
   > Could not resolve com.google.firebase:firebase-firestore:17.1.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
            > Connect to dl.google.com:443 [dl.google.com/172.217.19.110] failed: Connection timed out: connect
   > Could not resolve com.google.firebase:firebase-firestore:17.1.0.
      > Could not get resource 'https://jcenter.bintray.com/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
            > Connect to jcenter.bintray.com:443 [jcenter.bintray.com/52.28.74.46, jcenter.bintray.com/52.28.100.213] failed: Connection timed out: connect
   > Could not resolve com.google.firebase:firebase-firestore:17.1.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
            > Connect to dl.google.com:443 [dl.google.com/172.217.19.110] failed: Connection timed out: connect
   > Could not resolve com.google.firebase:firebase-firestore:17.1.0.
      > Could not get resource 'https://jcenter.bintray.com/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/google/firebase/firebase-firestore/17.1.0/firebase-firestore-17.1.0.pom'.
            > Connect to jcenter.bintray.com:443 [jcenter.bintray.com/52.28.100.213, jcenter.bintray.com/52.28.74.46] failed: Connection timed out: connect

* 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 2m 7s
Finished with error: Gradle task assembleDebug failed with exit code 1

重建步骤:

  1. 复制 pubspec.yaml cloud_firestore: ^0.9.0 的 firebase 包版本并将其添加到 pubspect.yamel 文件中。 并做包获取。
  2. 在 firebase 网站上创建帐户后下载 google-services.json。
  3. FLUTTERAPP/android/buld.grundle 我添加了这行代码

    类路径 'com.google.gms:google-services:4.2.0'

  4. FLUTTERAPP/android/app/build.grundle 最后我添加了这样的代码

    应用插件:'com.google.gms.google-services'

启动了应用程序..

我在 Windows 10 上使用带有 Android 模拟器的 android studio

MY_APP/android/buld.randle

buildscript {
    ext.kotlin_version = '1.2.71'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

MY_APP/android/app/build.grundle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 27

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.newapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

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

问题[RE: Flutter how to fix The number of method references in a .dex file can not become 64K.] 可以通过将 app/build.gradle minSdkVersion 值从 16 更改为 21 来解决。我认为这与以下问题相同以上(或相关)正如我所拥有的,但有不同的错误消息。

您还应该为要使用的 Firebase SDK 添加依赖项。

implementation 'com.google.firebase:firebase-core:16.0.1'到您的 MY_APP/android/app/build.grandle 文件的依赖项部分,如下所示。

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-core:16.0.1'
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM