Ale*_*Ali 64 dart firebase firebase-authentication flutter google-cloud-firestore
我尝试将 Android 项目连接到 Firebase,但在将以下内容添加到 pubsec.yaml 时出现此错误:
firebase_auth: ^0.16.0
cloud_firestore: ^0.13.5
Run Code Online (Sandbox Code Playgroud)
当我运行 gradle 但它不起作用时
Plugin project :firebase_core_web not found. Please update settings.gradle.
Plugin project :firebase_auth_web not found. Please update settings.gradle.
Plugin project :cloud_firestore_web not found. Please update settings.gradle.
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗
Pet*_*dad 127
在您的 中android/app/build.gradle,更新以下内容:
android {
// ...
defaultConfig {
// ...
minSdkVersion 16
}
}
Run Code Online (Sandbox Code Playgroud)
进入:
android {
// ...
defaultConfig {
// ...
minSdkVersion 23
}
}
Run Code Online (Sandbox Code Playgroud)
笔记:
minSdkVersion 23在flutter中使用firebase时需要使用。
从文档:
默认情况下,Flutter 支持 Android SDK v16(Jelly Bean,2012 年发布),但 multidex 并不能真正与 Jelly Bean 一起使用(尽管有可能)。配置 Jelly Bean 工作超出了本 Codelab 的范围,因此我们将最低目标 SDK 版本从 v16 更改为 v21(Lollipop,2014 年发布)。
要更改最低目标 SDK 版本:
升级后,它应该可以正常工作。当您创建任何新的 flutter 项目时,该settings.gradle文件会提供给您。作为参考,您的settings.gradle文件应该是这样的(默认文件没有更改):
include ':app'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}
Run Code Online (Sandbox Code Playgroud)
解释的settings.gradle:
Gradle是一个用于android项目的构建工具,就像antor一样maven,它使用groovy语言或kotlin进行脚本编写。在这种情况下,上面的代码是使用编写的groovy,因为它groovy是一种jvm语言,所以它可以使用Java库。所以基本上include ':app'会将项目添加到构建中(在常规中,您可以省略方法的括号)。
这一行:
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
Run Code Online (Sandbox Code Playgroud)
正在获取您在机器中创建的 flutter 项目的路径。以供参考:
https://docs.gradle.org/current/javadoc/org/gradle/api/initialization/ProjectDescriptor.html#getProjectDir-- https://docs.oracle.com/javase/8/docs/api/java/io /File.html#toPath-- https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html
这一行:
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
Run Code Online (Sandbox Code Playgroud)
将.flutter-plugins在 flutter 项目的根目录下创建一个名为 的空文件。然后plugins.each{ name, path ->这基本上是一个迭代,将插件名称和插件路径添加到文件中.flutter_plugins,如果在该文件中找不到插件,则会出现此问题中的错误
.flutter-plugins 文件:
# This is a generated file; do not edit or check into version control.
cloud_firestore=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.13.6/
cloud_firestore_web=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/cloud_firestore_web-0.1.1+2/
firebase_auth=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.16.1/
firebase_auth_web=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_auth_web-0.1.2/
firebase_core=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.4.4+3/
firebase_core_web=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_core_web-0.1.1+2/
firebase_database=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_database-3.1.5/
firebase_storage=/Users/<users>/.pub-cache/hosted/pub.dartlang.org/firebase_storage-3.1.5/
Run Code Online (Sandbox Code Playgroud)
小智 74
将文件更改settings.gradle为此
include ':app'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}
Run Code Online (Sandbox Code Playgroud)
Ahm*_*man 20
请在 flutter app -> android -> settings.gradle 中添加这个
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
71603 次 |
| 最近记录: |