Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Program type already present: android.support.v4.media.MediaBrowserCompat$CustomActionCallback

I completely new to Android Development and can't seem to resolve this error: "Error: Program type already present: android.support.v4.media.MediaBrowserCompat$CustomActionCallback"

This is my dependencies:

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'
}

I've googled some and ended up on the developer page about "Resolve duplicate class errors", but I'm still not able to fix this. Help would be very much appriciated!

like image 497
Michael_Oslo Avatar asked Jul 17 '18 20:07

Michael_Oslo


3 Answers

Option 1

Following worked for me Add the following in your gradle.properties file

android.useAndroidX = true
android.enableJetifier = false

Option 2 (if above does't work)

  1. Android studio -> Navigate -> Class
  2. Check include non-project classes
  3. Copy full class path android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
  4. See where it is used. You may need to remove, one of them.

Option 3 you might be including package which is including modules as well so exclude the support-v4 module with following method

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

You can analyze the conflicting modules using ./gradlew :YOURPROJECT:dependencies from a command line in your project repository. Check especially your third party libraries for occurences of "com.android.support-":

terminal_output

Then exclude the conflicting modules from these dependencies like:

   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'
}
like image 159
aanshu Avatar answered Oct 12 '22 22:10

aanshu


Im using flutter, and Im adding some native libraries in android, I tried the solutions posted here, but the trick for me was android.enableJetifier = true instead false

So, adding the following code to the gradle.properties, my apps are running:

android.useAndroidX = true
android.enableJetifier = true
like image 39
Pablo Cegarra Avatar answered Oct 12 '22 23:10

Pablo Cegarra


if you still getting error after

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

then you probably forgot about main activity that calling android.support.v7.app.AppCompatActivity change it to androidx.appcompat.app.AppCompatActivity

enter image description here

like image 32
Muhriddin Ismoilov Avatar answered Oct 13 '22 00:10

Muhriddin Ismoilov