【问题标题】:Upgrading flutter broke dependencies升级颤振破坏了依赖关系
【发布时间】:2019-09-27 15:46:02
【问题描述】:

我刚刚将 Flutter 升级到 1.5,将 Android Studio 升级到 3.4 和我的依赖项(提到 Firebase),我的应用程序不再在我的设备上运行。它正在安装并直接崩溃并出现以下错误:

java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/auth/FirebaseAuth;

将 Flutter 降级到旧版本和降级 Android Studio 都不起作用。我个人的假设是,它与从 ProGuard 到 R8 的变化有关。

这是我当前的 proguard-rules.pro 文件的样子:

 #Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }
-keep class com.google.firebase.** { *; }

我的依赖:

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath 'com.google.gms:google-services:4.2.0'
}

app/build.gradle:

minSdkVersion 21
targetSdkVersion 28
...    
minifyEnabled true
useProguard true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

颤振医生:

[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [Version 10.0.17763.475], locale de-AT)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.4)
[√] IntelliJ IDEA Ultimate Edition (version 2018.3)
[!] VS Code, 64-bit edition (version 1.33.1)
    X Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[√] Connected device (1 available)

pubspec.yaml

version: 1.0.0+1
environment:
  sdk: ">=2.1.0 <3.0.0"
dependencies:
  flutter:
    sdk: flutter
  image_picker:
  path_provider:
  google_maps_flutter:
  firebase_core:
  firebase_auth:
  cloud_firestore:
  image_cropper:
  firebase_storage:
  font_awesome_flutter:
  google_sign_in:
  flutter_facebook_login:
  http:
  location:
  geoflutterfire:
  firebase_messaging:
  cached_network_image:
  share:
  camera:
  flutter_staggered_grid_view:

【问题讨论】:

  • 用flutter clean命令试过了吗?
  • 是的,好几次。我什至在我的笔记本电脑上克隆了整个项目并遇到了同样的问题。
  • 发布你的 pubspec.yaml
  • 我编辑了我的帖子
  • // 将以下行添加到文件底部:apply plugin: 'com.google.gms.google-services'

标签: android gradle flutter firebase-authentication


【解决方案1】:

我有一个类似的问题,对我来说问题是由于缩小, 尝试设置

minifyEnabled false

做一个flutter clean 然后构建你的项目

【讨论】:

  • 这并没有解决我的问题。我还尝试在 buildTypes 的调试部分设置useProguard false,但仍然是同样的问题。如果我更改 build.gradle 文件中的某些内容,除了清理之外,我还需要做更多的事情吗?
【解决方案2】:

把你的依赖改成这个

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath 'com.google.gms:google-services:4.2.0'
        implementation 'com.google.firebase:firebase-auth:17.0.0'
}

还要注意这一点,如果您正在使用其他一些插件,例如 firebase 消息传递,您也需要添加它。

这里是新版本的列表

https://developers.google.com/android/guides/releases

关于此更改的另一件事是,您需要将 Flutter Firebase 插件更新到最新版本,否则您将遇到稳定性问题和意外崩溃。

【讨论】:

    【解决方案3】:

    更改了最新的 firebase-messaging google 依赖项,并在应用程序 gradle 文件的同一版本中修改了其他依赖项。现在工作正常

    dependencies version detail you can refer here

    dependencies {
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
        implementation 'com.google.firebase:firebase-auth:17.0.0'
        implementation 'com.google.firebase:firebase-messaging:18.0.0'
    }
    

    【讨论】:

      猜你喜欢
      • 2018-12-16
      • 2021-10-23
      • 1970-01-01
      • 2018-02-21
      • 2016-08-16
      • 2021-05-01
      • 1970-01-01
      • 2013-11-05
      • 2021-01-26
      相关资源
      最近更新 更多