简体   繁体   English

D8:程序类型已经存在:android.support.v4.media.MediaBrowserCompat$CustomActionCallback

[英]D8: Program type already present: android.support.v4.media.MediaBrowserCompat$CustomActionCallback

I am new to flutter and i build a very little app showing current latitude and longitude which required me to add two dependencies in pubspec.yaml :-我是flutter的新手,我构建了一个显示当前纬度和经度的很小的应用程序,这需要我在pubspec.yaml中添加两个依赖项:-

location and simple_permissions to get current user location and asking for location permission. location 和 simple_permissions 获取当前用户位置并请求位置权限。

but when i ran the app it shows following error:-但是当我运行该应用程序时,它显示以下错误:-

Gradle task 'assembleDebug'...
D8: Program type already present: android.support.v4.media.MediaBrowserCompat$CustomActionCallback

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/2.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/3.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/4.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/5.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/6.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/7.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/8.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/9.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/10.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/11.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/12.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/13.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/14.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/15.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/16.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/17.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/18.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/19.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/20.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/21.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/22.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/23.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/24.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/25.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/26.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/27.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/28.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/29.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/30.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/31.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/32.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/33.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/34.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/35.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/36.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/37.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/38.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/39.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/40.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/41.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/42.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/43.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/44.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/45.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/46.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/47.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/48.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/49.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/50.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/51.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/52.jar, /home/letsdoit/IdeaProjects/location/build/app/intermediates/transforms/dexBuilder/debug/53.jar
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: android.support.v4.media.MediaBrowserCompat$CustomActionCallback

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 9s
Finished with error: Gradle task assembleDebug failed with exit code 1

i think it is because of adding a library two times but i am not adding dependencies manually so it is flutter error inside.我认为这是因为添加了两次库,但我没有手动添加依赖项,因此内部出现抖动错误。

Please tell me solution of it请告诉我解决方法

Output Of ./gradlew app:dependecies is as follows:- ./gradlew app:dependecies 的输出如下:-

+--- project :location
|    \--- com.google.android.gms:play-services-location:15.+ -> 15.0.1
|         +--- com.google.android.gms:play-services-base:[15.0.1,16.0.0) -> 15.0.1
|         |    +--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1
|         |    |    \--- com.android.support:support-v4:26.1.0 -> 27.1.1
|         |    |         +--- com.android.support:support-compat:27.1.1
|         |    |         |    +--- com.android.support:support-annotations:27.1.1
|         |    |         |    \--- android.arch.lifecycle:runtime:1.1.0
|         |    |         |         +--- android.arch.lifecycle:common:1.1.0
|         |    |         |         \--- android.arch.core:common:1.1.0
|         |    |         +--- com.android.support:support-media-compat:27.1.1
|         |    |         |    +--- com.android.support:support-annotations:27.1.1
|         |    |         |    \--- com.android.support:support-compat:27.1.1 (*)
|         |    |         +--- com.android.support:support-core-utils:27.1.1
|         |    |         |    +--- com.android.support:support-annotations:27.1.1
|         |    |         |    \--- com.android.support:support-compat:27.1.1 (*)
|         |    |         +--- com.android.support:support-core-ui:27.1.1
|         |    |         |    +--- com.android.support:support-annotations:27.1.1
|         |    |         |    +--- com.android.support:support-compat:27.1.1 (*)
|         |    |         |    \--- com.android.support:support-core-utils:27.1.1 (*)
|         |    |         \--- com.android.support:support-fragment:27.1.1
|         |    |              +--- com.android.support:support-compat:27.1.1 (*)
|         |    |              +--- com.android.support:support-core-ui:27.1.1 (*)
|         |    |              +--- com.android.support:support-core-utils:27.1.1 (*)
|         |    |              +--- com.android.support:support-annotations:27.1.1
|         |    |              +--- android.arch.lifecycle:livedata-core:1.1.0
|         |    |              |    +--- android.arch.lifecycle:common:1.1.0
|         |    |              |    +--- android.arch.core:common:1.1.0
|         |    |              |    \--- android.arch.core:runtime:1.1.0
|         |    |              |         \--- android.arch.core:common:1.1.0
|         |    |              \--- android.arch.lifecycle:viewmodel:1.1.0
|         |    \--- com.google.android.gms:play-services-tasks:[15.0.1] -> 15.0.1
|         |         \--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1 (*)
|         +--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
|         +--- com.google.android.gms:play-services-places-placereport:[15.0.1,16.0.0) -> 15.0.1
|         |    \--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
|         \--- com.google.android.gms:play-services-tasks:[15.0.1,16.0.0) -> 15.0.1 (*)
+--- project :simple_permissions
|    \--- com.android.support:support-v4:27.1.1 (*)
\--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.71
     \--- org.jetbrains.kotlin:kotlin-stdlib:1.2.71
          +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.2.71
          \--- org.jetbrains:annotations:13.0

build.gradle for my app is as follows :-我的应用程序的 build.gradle 如下:-

//noinspection GradleCompatible
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "ab"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "com.android.support:multidex:1.0.3"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

pubspec.yaml :- pubspec.yaml :-

name: a
description: b

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# Read more about versioning at semver.org.
version: 1.0.0+1

environment:
  sdk: ">=2.0.0-dev.68.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  permission_handler: ^2.2.0
  location: ^2.0.0



  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter


# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #  - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.io/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.io/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.io/custom-fonts/#from-packages

This gradle error messages are so hard to solve... Well I had some problems like this and I wrote how I solved here .这个 gradle 错误消息很难解决......好吧,我遇到了一些这样的问题,我在这里写了我的解决方法。 Anyway I advise you to use updated packages in your pubspec.无论如何,我建议您在 pubspec 中使用更新的软件包。 simple_permissions package has been a while there is no updates, try permission_handler package instead. simple_permissions 包已经有一段时间没有更新了,试试permission_handler包。 Other point to avoid future build problems is migrate your app to androidX and use dependencies which already using androidX too, a lot of official plugins are migrating to it and when we mix support library with androidX in the same project the build process fails sadly.避免未来构建问题的另一点是将您的应用程序迁移到 androidX 并使用已经使用 androidX 的依赖项,许多官方插件正在迁移到它,当我们在同一个项目中将支持库与 androidX 混合时,构建过程会很遗憾地失败。 If you are planning include google_maps in you app I really recommend you migrate to androidX instead avoid it.如果您计划在您的应用程序中包含 google_maps,我真的建议您迁移到 androidX 而避免它。

AndroidX is the original support library packages and classes with other namespace. AndroidX 是原始支持库包和具有其他命名空间的类。 Full description here .完整说明在这里

You can migrate to androidx manually or you can use android-studio migration tool that some times fails.您可以手动迁移到 androidx,也可以使用有时会失败的 android-studio 迁移工具。 A migration process with android-studio tools has been already described here in details.使用 android-studio 工具的迁移过程已在此处详细描述。

To migrate manually you need replace all your support library dependencies by respective androidx package.要手动迁移,您需要用相应的 androidx 包替换所有支持库依赖项。 An example is:一个例子是:

dependencies {
   // using support library
   implementation 'com.android.support:appcompat-v7:$version' 
}

Must be replaced by必须替换为

dependencies {
       // using androidx
       implementation 'androidx.appcompat:appcompat:$version' //androidx artifact 
    }

Androidx artifact mappings can be found here In your gradle.properties file you need insert this two lines below Androidx 工件映射可以在这里找到 在您的 gradle.properties 文件中,您需要在下面插入这两行

android.enableJetifier=true
android.useAndroidX=true

And make sure your flutter dependencies are using androix too.并确保您的 flutter 依赖项也在使用 androix。

Take a look at this flutter page it talks about androidX compatibility and migration.看看这个flutter 页面,它讨论了 androidX 兼容性和迁移。

I hope it helps.我希望它有帮助。

I had same problem我有同样的问题

added this in gradle.properties在 gradle.properties 中添加了这个

android.enableJetifier=true 
android.useAndroidX=true

In build.gradle (app level) Removed : implementation 'com.android.support:support-v4:27.1.1'build.gradle (应用程序级别)中删除: implementation 'com.android.support:support-v4:27.1.1'

added :添加 :

implementation `"androidx.legacy:legacy-support-v4:1.+"`

and Run Clean and Invalidate Cache & Restart - worked out并运行 Clean and Invalidate Cache & Restart - 解决了

Using Ionic, solved by adding following plugins使用Ionic,通过添加以下插件解决

cordova plugin add cordova-plugin-androidx
cordova plugin add cordova-plugin-androidx-adapter

Regards!问候!

对我来说是插件cordova-plugin-mfilechooser,它已经没有使用androidx(使用Phonegap)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 程序类型已存在:android.support.v4.media.MediaBrowserCompat$CustomActionCallback - Program type already present: android.support.v4.media.MediaBrowserCompat$CustomActionCallback 迁移到 AndroidX -“程序类型已经存在:android.support.v4.media.MediaBrowserCompat - Migrate to AndroidX - "Program type already present: android.support.v4.media.MediaBrowserCompat 程序类型已存在:android.support.v4.media.MediaBrowserCompat $ ConnectionCallback $ StubApi21 - Program type already present: android.support.v4.media.MediaBrowserCompat$ConnectionCallback$StubApi21 android.support.v4.media.MediaBrowserCompat$CallbackHandler 错误的原因 - reason of android.support.v4.media.MediaBrowserCompat$CallbackHandler error D8:程序类型已经存在:android.support.v4.app.INotificationSideChannel$Stub$Proxy - D8: Program type already present: android.support.v4.app.INotificationSideChannel$Stub$Proxy Unity3d Admob 集成破坏了 Android Build:“D8:程序类型已经存在:android.support.customtabs.ICustomTabsCallback” - Unity3d Admob integration breaks Android Build: "D8: Program type already present: android.support.customtabs.ICustomTabsCallback" Flutter 构建失败,D8:程序类型已经存在 - Flutter build failed with D8: Program type already present 迁移至Gradle 3.0.0:错误-D8:程序类型已存在 - Migrating to Gradle 3.0.0: Error - D8: Program type already present 程序类型已经存在:android.support.v7.util.AsyncListUtil $ 1 - Program type already present: android.support.v7.util.AsyncListUtil$1 程序类型已存在:android.support.v7.appcompat.R - Program type already present: android.support.v7.appcompat.R
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM