将 Flutter 应用连接到 Firebase 后,我无法在物理设备上启动应用



我是新的扑动和Firebase。我的问题是,我能够在我的物理设备上运行我的Flutter应用程序来测试ui,但是在我将它连接到Firebase并尝试像以前那样启动应用程序之后,它只会运行gradle task 'assemble debug'不到一分钟,并且在不发送任何反馈或错误的情况下终止。

我遵循这一点,这就是我的如何构建。gradle文件看起来像:

buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.12'
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}

,这是我的构建。app目录下的gradle文件:

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.google.gms.google-services'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion flutter.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.sabra.cadre_permanence_marjane"
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
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"
}

我也试着改变package_namegoogle-services.json中的客户端数组的每个成员中文件匹配(如果我不应该这样做,请告诉我),并检查Flutter是否识别我的设备,以防万一:

命令提示符:flutter devices

操作步骤:(建议在Android Studio中尝试)

  1. 连接firebase后,添加google-services。android->app文件夹下的json文件。
  2. 检查是否存在名为"[project_name]_android"的文件。
  3. 如果没有,在android文件夹下创建一个名为'[project_name]_android.iml'的文件。
  4. 将以下代码复制粘贴到该文件下。
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
</component>
</module>
  1. 关闭所有在IDE中打开的文件
  2. 转到任何构建。gradle文件(项目级或应用级).
  3. 当您打开该文件时,您将在文件顶部看到一个横幅。请注意横幅的右侧。你会看到一个选项"Open for Editing in Android Studio"。点击该选项。
  4. Android Studio将要求Permission打开一个新窗口。允许以"新窗"打开。
  5. 等待"Gradle Build"操作完成。您可以在新打开的窗口底部看到进度。
  6. 完成进度后关闭新窗口。
  7. 颤振清洁

获得乐趣。谢谢你。

最新更新