如何解决抖动的AndroidX不兼容问题?

时间:2019-06-11 08:42:31

标签: android ios gradle flutter dart

我只是导入了webview_flutter插件,发现该插件与我的flutter环境不兼容。然后使用Android Studio通过“迁移到AndroidX”选项迁移我的AndroidX环境。

我想使用webview_flutter插件查看页面。你们能帮我吗?谢谢

这是错误消息

在调试模式下在Andromax B26D2H上启动lib / main.dart ... D8:程序类型已存在:android.support.v4.media.MediaBrowserCompat $ ItemCallback

失败:构建失败,并出现异常。

  • 出了什么问题: 任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。

      

    com.android.builder.dexing.DexArchiveMergerException:合并dex归档文件时出错:/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/22.jar,/ Users / tio /Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/105.jar,/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/148.jar, /Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/133.jar,/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/ 72.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 128.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 79.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 88.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app /一世ntermediates / transforms / dexBuilder / debug / 110.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 67.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 120.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 91.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 102.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 6.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 118.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 5.jar ,/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/52.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 58。 jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 43.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 127.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 142.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 151.jar,/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/19.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 34.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 46.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 63.jar,/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/107.jar,/ Users / tio /文件/开发/消防cek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 9.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 31.jar,/ Users / tio /文件/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/15.jar,/Users/tio/Documents/Development/firecek_2019/build/app/intermediates/transforms/dexBuilder/debug/115.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 70.jar,/ Users / tio / Documents / Development / firecek_2019 / build / app / intermediates / transforms / dexBuilder / debug / 62 。罐,   在https://developer.android.com/studio/build/dependencies#duplicate_classes了解如何解决该问题。   程序类型已经存在:android.support.v4.media.MediaBrowserCompat $ ItemCallback

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。

  • https://help.gradle.org

  • 获得更多帮助

在4m 59s内失败


Gradle失败可能是由于此Flutter应用程序中的AndroidX不兼容所致。 有关该问题及其解决方法的更多信息,请参见https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility


Gradle任务assembleDebug失败,退出代码为1 退出(sigterm)

11 个答案:

答案 0 :(得分:3)

总结解决问题的更改:

启用多重索引。

转到 [project_folder]/app/build.gradle 并添加以下行。

defaultConfig {
    ...
    multiDexEnabled true
}

启用 Jetifier

转到 [project_folder]/android/app/gradle.properties 并添加以下行。

android.useAndroidX=true
android.enableJetifier=true

答案 1 :(得分:1)

创建一个新的flutter项目并将现有代码移至其中:flutter migration

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

例如:flutter create --androidx -t app。

答案 2 :(得分:1)

对我来说,我复制了 settings.gradle 文件 到新文件 settings_aar.gradle

然后从 settings_aar.gradle 中删除以下代码:

 def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
 def plugins = new Properties()

答案 3 :(得分:1)

好的,感谢@Navpreet Singh,我终于解决了这个问题

为了修复Firebase FCM(小米设备)默认灰色图标的问题,我在Manifest中添加:

从那时起,我在构建应用程序时遇到了这个错误:

正在运行 Gradle 任务 'assembleDebug'...
运行 Gradle 任务 'assembleDebug'... 完成 20,2s 构建失败可能是因为插件中的 AndroidX 不兼容。该工具即将 尝试使用Jetifier解决不兼容问题。 构建 cloud_firestore 插件... 例外:由于上述问题,无法构建 cloud_firestore 插件。 运行 Gradle 任务 'assembleAarRelease'...

当我注释掉 Manifest 中的元数据时,程序又开始编译了。

enter image description here

答案 4 :(得分:0)

首先,请确保pubspec.yaml中的所有软件包均为最新版本。然后使用android studio打开flutter应用程序的android项目,选择Refactor-> Migrate to Androidx(确保您是通过android项目而不是flutter开发的)。等到android studio完成迁移项目,再重建项目。希望对您有帮助!

答案 5 :(得分:0)

似乎您正遇到dexandroidX的问题。

关注https://stackoverflow.com/a/56490440/9236994

此答案可解决您的问题。

答案 6 :(得分:0)

感谢您的建议,

我已通过执行以下步骤对其进行了修复: 1.尝试添加此行。在Project文件夹> android> app> build.gradle中,在

中添加以下行

multiDexEnabled true

在defaultConfig内部

  1. 然后在android / build.gradle文件中升级gradle依赖项:classpath'com.android.tools.build:gradle:3.3.1'(以前是3.2.1版)

  2. 运行流畅并重建项目

答案 7 :(得分:0)

在AndroidManifest文件中,在清单标记下添加权限

答案 8 :(得分:0)

我找到了@tiklupxgit 的 this solution on Github,很快就解决了这个问题。

更新[Project Directory]/android/build.gradle中的这一行

classpath 'com.android.tools.build:gradle:3.5.4'

现在在终端中的 [Project Directory]

下运行这些命令
flutter clean && flutter pub get

最后,再次构建您的项目。

答案 9 :(得分:0)

只需在 app/build.gradle 文件中启用 multidex。

defaultConfig {   
     ....
     multiDexEnabled true             
 }

dependencies {
    .....
    implementation 'com.android.support:multidex:2.0.1'
}

答案 10 :(得分:-1)

您可以按照此链接中给出的这些步骤来解决此问题

https://medium.com/@sahaishashank2507/the-gradle-failure-may-have-been-because-of-androidx-incompatibilities-in-this-flutter-app-39b34acee40e?source=---------2------------------

You need to open your project in the android studio.
select Refactor->Migrate to Androidx(You need to migrate Android Project not 
flutter one)
Android Studio finish some process you have to wait for it .
Than rebuild your project and it will work fine.

它可以解决您的问题