您的应用未使用 AndroidX - Flutter 不允许我生成 apk

Posted

技术标签:

【中文标题】您的应用未使用 AndroidX - Flutter 不允许我生成 apk【英文标题】:Your app isn't using AndroidX - Flutter doesn't allow me to generate apk 【发布时间】:2020-05-13 16:06:13 【问题描述】:

我在 Mac 上使用 Visual Studio 代码开发了一个应用程序。我在ios上运行应用程序没有任何问题。我还将它安装在物理设备上,它运行良好,但我在生成 android 项目研究及其 APK 时遇到问题。

消息

flutter build appbundle
[!] Your app isn't using AndroidX.
    To avoid potential build failures, you can quickly migrate your app by following the
    steps on ...
Running Gradle task 'bundleRelease'...                                  
Note: Some input files use unchecked or unsafe operations.      
Running Gradle task 'bundleRelease'...                                                     Note: Recompile with -Xlint:unchecked for details.              
Running Gradle task 'bundleRelease'...                                                                                                        
Running Gradle task 'bundleRelease'... Done                       217,9s (!)
Gradle build failed to produce an .aab file. It's likely that this file was generated under
/Users/riccardo/Desktop/QuoteFlutter/quote/build, but the tool couldn't find it.

【问题讨论】:

您是否尝试按照给您的说明更新您的应用以使用 AndroidX? 请试试这个,更多日志信息,flutter build apk -v,可能是android x迁移的问题 尝试使用flutter clean命令,然后构建apk 【参考方案1】:

在我自己的情况下,我的 gradle.properties 丢失了。我刚刚在 android 文件夹中创建了一个新的 gradle.properties 文件,使用以下参数

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=true

【讨论】:

【参考方案2】:

错误描述明确指出

您的应用未使用 AndroidX。 为避免潜在的构建失败,您可以按照以下步骤快速迁移您的应用程序 踩...

如何解决?

关注this 详细文档。

【讨论】:

【参考方案3】:

你应该去

YourAppName=> android => gradle.properties

在 gradle.properties 里面添加这两行

android.useAndroidX=true
android.enableJetifier=true

dat 应该可以解决它。

【讨论】:

【参考方案4】:

我有一个使用 Firestore 的旧项目,我正试图打开它,但收到了这条消息。我找不到任何简单的方法来修复它。

这些是我迁移它所采取的步骤,希望对某人有所帮助。

创建一个新文件夹。

然后在终端中运行此命令,在文件夹中:

flutter create --org com.yourdomain your_app_name

从 lib 文件夹中复制文件,(以及从 android 或 ios 文件夹中进行的任何其他修改)。

将 google-services.json 复制到 android\app 文件夹。

修改pubspec.yaml,复制dependencies下的依赖:

将 android\app\build.gradle 更改版本更改为:

minSdkVersion 21

在android\app\build.gradle中添加需要的插件:

apply plugin: 'com.google.gms.google-services'

在 Android\build.gradle 文件中: 添加依赖项(使用您的版本):

classpath 'com.google.gms:google-services:4.3.3' 

【讨论】:

【参考方案5】:

您需要将项目转换为 AndroidX。执行以下命令:

flutter create --androidx -t <project-type> <new-project-path>

项目类型可以是apppackageplugin

更多信息here。

注意:在使用 Flutter 在 VSCode 中构建从 github 下载的应用时也会出现此问题。

【讨论】:

【参考方案6】:

2021 年 8 月

答案: 如果你没有像我使用vscode那样使用android studio

将以下行添加到 flutter_app_path/android/gradle.properties。

android.useAndroidX=true
android.enableJetifier=true

Google 引入了 android jetpack(另一个主题),其中 AndroidX 包名称和 jetpack 库的默认命名空间以及最低要求 support library 28 我猜现在颤振团队希望在不久的将来将 flutter 支持迁移到 android jetpack。现在开始迁移到androidx,确保你的项目有support library 28

将以下行添加到 flutter_app_path/android/app/build.gradle

android 
    compileSdkVersion 28
// other lines of code

可选故事 我克隆旧的flutter repo 时遇到了同样的问题 如果你已经从 github 克隆了 flutter legacy app repo 并且你的开发 Flutter SDK 版本是 2.2.x 首先你需要将你的应用迁移到 NULL Safety 之后你应该迁移到 androidx 跟随我的Answer

【讨论】:

【参考方案7】:

这是因为您的项目缺少 gradle.prperties 文件 >> 在 android studio 或 vs 代码中打开终端并编写“flutter create”。它将创建丢失的文件,其中之一是 gradle.properties。

【讨论】:

【参考方案8】:

如果你想要一个 APK 然后使用

flutter clean
flutter build apk

【讨论】:

以上是关于您的应用未使用 AndroidX - Flutter 不允许我生成 apk的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Androidx SeekBarPreference xml 属性 setMax

androidx.paging.PagedStorage.init 在启用 proguard 时给出错误

Flutte VS RN

获取 android 房间数据库 java.lang.IllegalArgumentException 的以下异常:@androidx.room.Database 未定义元素视图()

添加 androidx.room:room-compiler:2.1.0-alpha05 后项目未编译

构建发布和调试 apk 时未找到 Firebase Auth AndroidX 依赖项