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

时间:2018-07-17 20:15:10

标签: android android-gradle

我是Android开发的新手,似乎无法解决此错误: “错误:程序类型已存在:android.support.v4.media.MediaBrowserCompat $ CustomActionCallback”

这是我的依赖项:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha1'
implementation "android.arch.navigation:navigation-fragment:1.0.0-alpha01"
implementation "android.arch.navigation:navigation-ui:1.0.0-alpha01"


androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
testImplementation 'junit:junit:4.12'
}

我已经用Google搜索了一些内容,并最终在开发人员页面上看到了“解决重复的类错误”的信息,但是我仍然无法解决此问题。帮助会非常有用!

7 个答案:

答案 0 :(得分:23)

选项1

以下为我工作 在gradle.properties文件中添加以下内容

android.useAndroidX = true
android.enableJetifier = false

选项2 (如果上述方法不起作用)

  1. Android studio-> Navigate-> Class
  2. 检查是否包含非项目类
  3. 复制完整的类路径android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
  4. 查看其使用位置。您可能需要删除其中之一。

选项3 您可能会包含其中也包含模块的软件包,因此请使用以下方法排除support-v4模块

implementation ('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
      exclude group: 'com.android.support', module:'support-v4'
}

您可以从项目存储库中的命令行使用./gradlew :YOURPROJECT:dependencies分析冲突的模块。 特别检查您的第三方库是否出现“ com.android.support-”:

terminal_output

然后从这些依赖项中排除冲突的模块,例如:

   implementation ("com.jakewharton:butterknife:8.8.1") {
    exclude group: 'com.android.support', module: 'support-v4'
    exclude group: 'com.android.support', module: 'support-annotation'
    exclude group: 'com.android.support', module: 'support-compat'
}

答案 1 :(得分:11)

我正在使用flutter,并在android中添加了一些本机库,我尝试了此处发布的解决方案,但对我而言,诀窍是android.enableJetifier = true而不是false

因此,将以下代码添加到gradle.properties中,我的应用程序正在运行:

android.useAndroidX = true
android.enableJetifier = true

答案 2 :(得分:2)

添加以下插件

cordova 插件添加cordova-plugin-androidx cordova 插件添加cordova-plugin-androidx-adapter

帮我解决了问题

答案 3 :(得分:1)

至少对我来说,问题在于implementation 'androidx.legacy:legacy-support-v4:1.0.0-alpha1'依赖性。我进入Android Studio的菜单,在Kotlin中创建一个Blank Fragment,只是为了看看它是什么样子,并添加了上面的依赖项。

一旦我删除了该依赖性,错误就会消失。

答案 4 :(得分:1)

如果之后仍然出现错误

# gradle.properties
android.useAndroidX = true
android.enableJetifier = false

然后您可能忘记了调用 android.support.v7.app.AppCompatActivity 的主要活动 将其更改为 androidx.appcompat.app.AppCompatActivity

enter image description here

答案 5 :(得分:0)

可以看出Android Studio错误地显示了错误。

尝试清除缓存。 File -> Invalidate Caches / Restart -> Invalidate and Restart

答案 6 :(得分:0)

您现有的某些依赖项正在使用支持库的旧版本,请尝试

    id1   Type
0   123   None   
1   123   None  
2   123   None  
3   124   Plane
4   124   None   
5   124   None