【问题标题】:Flutter Android studio build failingFlutter Android Studio 构建失败
【发布时间】:2019-06-19 20:58:17
【问题描述】:

我的 Android studio flutter 项目开始给出找不到符号错误。

C:\Users\abc\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_messaging-2.2.0\android\src\main\java\io\flutter\plugins\firebasemessaging\FirebaseMe**ssagingPlugin.java:13: error: cannot find symbol
import androidx.annotation.NonNull;**
                          ^
  symbol:   class NonNull
  location: package androidx.annotation
C:\Users\abc\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_messaging-2.2.0\android\src\main\java\io\flutter\plugins\firebasemessaging\FirebaseMessagingPlugin.java:14: error: package androidx.localbroadcastmanager.content does not exist
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
                                             ^
C:\Users\abc\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_messaging-2.2.0\android\src\main\java\io\flutter\plugins\firebasemessaging\FlutterFir**ebaseInstanceIDService.java:9: error: package androidx.localbroadcastmanager.content does not exist
import androidx.localbroadcastmanager.content.LocalBroadcastManager;**

任何人都知道出了什么问题?

根据其他用户的建议,我尝试重构为 AndroidX,但即使它是 compileSdkVersion 28 仍然出现错误。我还尝试使缓存无效并重新启动 android studio。

Gradle.properties

【问题讨论】:

    标签: android-studio flutter


    【解决方案1】:

    如果您使用的是cloud_firestore: ^0.9.0,请更改以下内容

    pubspec.yaml

    firebase_core: '^0.3.0' 添加到依赖项

    android/build.gradle

    mavenLocal() 添加到 buildscripts.repositories 和 allprojects.repositories

    classpath 'com.google.gms:google-services:4.2.0' 添加到 buildscript.dependencies

    android/grandle.properties

    添加 android.useAndroidX=trueandroid.enableJetifier=true

    android/app/build.gradle

    将 compileSdkVersion 更改为 28

    将依赖项更改为

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    

    在底部添加apply plugin: 'com.google.gms.google-services'

    【讨论】:

    • 谢谢埃里克金。它解决了我的问题。完成您告诉的所有步骤后,我的应用程序运行良好。我还需要更新一些依赖项,例如 firebase_auth、firebase_messaging 等。现在一切正常。但是,我的 Eclipse 仍然向我显示警报消息,将我的 compileSdk 更改为 28(即使它是),以便重构为 AndroidX ....
    • @Sam 我不确定如何解决您的问题。您可能想要清除 Android Studio 缓存或下载新版本。现在我正在使用带有颤振插件的 VSCode。
    • @Sam 你能告诉我哪个依赖版本特别是你使用的 firebase_auth 我有同样的问题。我已经尝试了所有这些,但仍然遇到同样的错误。
    • @EricKim 感谢您的详细描述。在进行这些更改后运行 flutter clean 使其工作。
    【解决方案2】:

    我遇到了同样的错误,必须进入我的应用程序级别的 android build.gradle 文件并将 compilesdkversion 更改为 28,然后在我的 gradle.properties 文件中添加 android.useAndroidX=true android.enableJetifier=true,我还检查了我的 pubspec 文件并检查了对 AndroidX 有重大更改的任何更新,并确保更新这些更新只是为了安全。阅读更多关于AndroidX

    【讨论】:

    • 嗨,我试过了,但我的 Android 工作室仍然显示错误,说你的 compileSdkVersion 应该至少为 28,即使它是 28
    【解决方案3】:

    您需要将项目迁移到 AndroidX。请参阅 firebase_messaging here 的更改日志。要迁移您的项目,请参阅此link

    【讨论】:

      【解决方案4】:

      Android 于 2019 年 1 月 16 日获得新许可

      转到您的终端: 颤振医生--android-licenses

      在 Android Studio 中:重构 -> 迁移到 AndroidX

      【讨论】:

      • 嗨,我更改了 compileSdkVersion 28 并更改了 gradle.properties。但是当我尝试重构 -> 迁移到 AndroidX 时,它会显示错误说将 compileSdkVersion 更改为 28,即使它是 28...
      【解决方案5】:

      除了@Eric Kim's answer,请确保您使用的是最低支持的android构建工具版本,

      classpath 'com.android.tools.build:gradle:3.2.0'
      classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.51'
      

      理想情况下,您应该使用最新版本,但到目前为止,上述版本是最低要求。

      【讨论】:

        【解决方案6】:

        android/app/build.gradle 中,您应该将 compileSdkVersion 更改为:

        compileSdkVersion 28
        

        【讨论】:

          猜你喜欢
          • 2019-03-31
          • 2021-04-25
          • 1970-01-01
          • 2019-05-17
          • 2021-12-07
          • 2021-11-24
          • 2016-10-17
          • 2017-06-08
          相关资源
          最近更新 更多