Flutter / Android Studio更新以来Flutter应用程序崩溃

时间:2019-02-05 04:11:08

标签: android-studio flutter

我将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应用程序,它将能够运行。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

我个人将对path_provider(getApplicationDocumentsDirectory)的调用替换为sqflite(getDatabasesPath),并删除了path_provider。没有path_provider的情况下,我的应用程序在棉花糖上运行良好。