【问题标题】:Flutter App Crash since Flutter / Android Studio UpdateFlutter 应用程序崩溃,因为 Flutter / Android Studio 更新
【发布时间】:2019-06-28 20:52:17
【问题描述】:

我将 Android Studio 升级到 3.3.0,将 Flutter 升级到 1.0.0。

发生的第一件事是所有软件包都被突出显示为丢失,我将所有版本升级到最新版本

包:

**Pubspec.yaml**

cupertino_icons: ^0.1.2
url_launcher: 3.0.2 > updated to 5.0.0
firebase_admob: 0.5.5 > updated to 0.8.0
path_provider: 0.4.1 > updated to 0.5.0
flutter_html: 0.7.0 > updated to 0.9.3
geolocator: 1.7.0 > updated to 2.1.1
sqflite: ^1.1.0 
http: ^0.12.0+1 > this was added cos it started showing as missing since the update.

然后我将其他文件更新到最新版本

**In /android/build.gradle**
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip

**In /android/build.gradle**
buildscript {
ext.kotlin_version = '1.3.20'
repositories {
    google()
    jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

**In /android/app/build.gradle**
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'
}

进行更改后,我在模拟器中运行应用程序,它立即崩溃,没有错误消息

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Gradle task 'assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk.
Application finished.

然后我尝试将所有版本,包括 pubspec.yaml 中的包恢复到以前的版本。

com.android.tools.build:gradle:3.1.4
gradle-4.4-all.zip
ext.kotlin_version = '1.2.61'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

这仍然会使应用在运行时立即崩溃。

此时,我删除了虚拟设备并创建了新设备,并尝试在自己插入的手机上运行它。同样的结果 - 应用程序立即崩溃。

作为最后的手段,我完全删除了所有包并将 main.dart 页面重新制作为一个不使用任何包的简单页面 - 甚至这会立即崩溃。

但是,如果我创建了一个新的 Flutter 应用程序,它就可以运行。

我错过了什么?还有其他地方需要我将版本更改为我错过的旧版本吗?

【问题讨论】:

    标签: android-studio flutter


    【解决方案1】:

    我将一个新的 Flutter 应用程序与我的文件逐个文件进行比较,最后意识到 android/app/src/main/kotlin 中缺少整个 kotlin 目录 我从早期版本中复制了该目录,现在可以使用。

    【讨论】:

      【解决方案2】:

      另一种情况可能是您的设备太旧,无法支持 AndroidX 环境 (api >= 28)。 需要 androidX 支持才能包含 path_provider(也可能是 firebase_admob)

      就我个人而言,我用 sqflite (getDatabasesPath) 替换了对 path_provider (getApplicationDocumentsDirectory) 的调用,并删除了 path_provider。我的应用在没有 path_provider 的 Marshmallow 上运行良好。

      【讨论】:

        猜你喜欢
        • 2020-08-17
        • 2019-10-29
        • 1970-01-01
        • 2018-12-26
        • 2017-01-29
        • 1970-01-01
        • 2020-12-06
        • 1970-01-01
        • 2021-08-04
        相关资源
        最近更新 更多