如果我包含某个包,Flutter Android应用程序会在启动时崩溃

时间:2018-05-21 18:28:42

标签: flutter flutter-dependencies

最近突然出现了一个问题,只需将依赖项包含在pubspec.yaml中的'location',例如:

dependencies:
  flutter:
    sdk: flutter

  location: ^1.2.0  <------------------------ culprit
  firebase_auth: ^0.5.10  
  cloud_firestore: ^0.7.2   

the app crashes immediately upon startup.

'location'包本身在一个示例应用程序中单独工作。 我目前没有导入,即使用位置包中包含的任何功能,但是当我删除条目时,一切都很好。

不幸的是没有看到颤动日志的线索......

5 个答案:

答案 0 :(得分:4)

我面临着同样的问题。我所做的就是在应用程序的multiDexEnabled true中插入行build.gradle。像这样:

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        multiDexEnabled true //Insert this line
    }

尝试此操作,然后运行命令flutter cleanflutter build apkflutter run。它必须解决您的问题。

答案 1 :(得分:1)

我在物理android设备以及模拟器上都遇到了相同的问题。我不完全确定如何解决此问题,但步骤如下:

  • cached_network_image中使用同一软件包的较低版本(在我的情况下为pubspec.yaml)。
  • 如果应用仍然崩溃,请再次运行flutter upgradeflutter packages get
  • 完全停止并重新启动您的应用程序(不重新加载)。现在一定不能崩溃。

需要注意的是,执行上述3个步骤后,即使将软件包版本更改回pubspec.yaml中的最新版本,我的应用也没有崩溃。

答案 2 :(得分:0)

我有一个类似的问题,对我而言,它是一个不同的包。

stripe_payment:“^ 0.0.6”

我在日志中看不到任何内容如下:

将硬件渲染与为x86构建的设备Android SDK一起使用。如果您获得图形工件,请考虑使用“--enable-software-rendering”启用软件渲染。

在调试模式下为x86构建的Android SDK上启动lib / main.dart ... 初始化gradle ... 3.2s 解决依赖关系... 17.4s 运行'gradlew assembleDebug'... 48.1s 内置build \ app \ outputs \ apk \ debug \ app-debug.apk。 安装build \ app \ outputs \ apk \ app.apk ... 2.4s

答案 3 :(得分:0)

我遇到了类似的问题,在花了好几个小时之后,才发现问题出在Kotlin,我在没有Kotlin和Swift支持的情况下创建了这个项目。该代码的Dart部分可以正常工作,但Android应用程序在使用Kotlin代码启动时会崩溃,但在Java中可以正常工作。

要通过以下命令在Kotlin / Swift支持下创建Flutter项目:

flutter create --org co.uk.sample -i swift -a kotlin --description 'Your Project Description' sample_app

-org 定义项目路径的位置, -i 启用Swift, -a 启用Kotlin,然后在结束。

答案 4 :(得分:0)

无需更改任何内容,简单的 flutter build apk 就可以解决问题,在我看来,它是软件包cached_network_image