Android プロジェクトを Firebase に接続しようとしましたが、pubsec.yaml に以下を追加したため、このエラーが発生します。
firebase_auth: ^0.16.0
cloud_firestore: ^0.13.5
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.
解決策はあるのでしょうか
ベストアンサー1
でandroid/app/build.gradle
、以下を更新します。
android {
// ...
defaultConfig {
// ...
minSdkVersion 16
}
}
の中へ:
android {
// ...
defaultConfig {
// ...
minSdkVersion 23
}
}
注記:
minSdkVersion 23
Flutter で Firebase を使用する場合に使用する必要があります。
からドキュメント:
デフォルトでは、Flutter は Android SDK v16 (Jelly Bean、2012 年リリース) をサポートしていますが、マルチデックスは Jelly Bean では実際には動作しません (ただし、動作は可能です)。Jelly Bean を動作するように構成することはこのコードラボの範囲外であるため、最小ターゲット SDK バージョンを v16 から v21 (Lollipop、2014 年リリース) に変更します。
最小ターゲット SDK バージョンを変更するには:
- android/app/build.gradle を開き、minSdkVersion 16 という行を見つけます。
- その行を minSdkVersion 21 に変更します。
- ファイルを保存します。
アップグレード後は正常に動作するはずです。このsettings.gradle
ファイルは、新しいFlutterプロジェクトを作成するときに提供されます。参考までに、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
}
説明のsettings.gradle
:
Gradle
はAndroidプロジェクト用のビルドツールで、やと同様にant
、maven
スクリプトにはGroovy言語またはKotlinを使用します。この場合、上記のコードはを使用して書かれておりgroovy
、は言語groovy
であるためjvm
、ライブラリを使用できますJava
。つまり、基本的にはinclude ':app'
プロジェクトをビルドに追加します (Groovy ではメソッドの括弧を省略できます)。
この行:
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
マシンで作成した 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')
.flutter-plugins
フラッタープロジェクトのルートの下にという空のファイルを作成します。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/