web-dev-qa-db-fra.com

Type de programme déjà présent: Android.support.v4.app.INotificationSideChannel $ Stub $ Proxy

Chaque fois que j'ajoute implemntation 'com.google.Android.material:material:1.0.0-alpha1' lorsque j'essaie de construire mon projet, Android Studio déclare:

Type de programme déjà présent: Android.support.v4.app.INotificationSideChannel $ Stub $ Proxy Message {kind = ERROR, text = Type de programme déjà présent: Android.support.v4.app.INotificationSideChannel $ Stub $ Proxy, sources = [fichier source inconnu], nom de l'outil = Facultatif.of (D8)}

Ceci est mon script de grade:

    apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 'Android-P'
    defaultConfig {
        applicationId "it.smart.bab3"
        minSdkVersion 21
        targetSdkVersion 'p'
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.Android.support:appcompat-v7:28.0.0-alpha1'
    implementation 'com.google.Android.material:material:1.0.0-alpha1'
    implementation 'com.Android.support.constraint:constraint-layout:1.1.0'
    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'
    implementation 'com.Android.support:design:28.0.0-alpha1'
    implementation 'com.Android.support:support-v4:28.0.0-alpha1'
}

Je suis nouveau avec ce type d'erreur, et je n'ai pas trouvé d'erreur avec cette erreur. Merci

25
Smart

Je me suis également battu toute la journée avec ce problème. Finalement, j'ai réussi à compiler et à exécuter le projet avec succès.

Tout d'abord, débarrassez-vous de ceci:

implementation 'com.Android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.Android.support:design:28.0.0-alpha1'
implementation 'com.Android.support:support-v4:28.0.0-alpha1'

Ajoutez ce qui suit dans votre fichier gradle.properties:

Android.useAndroidX = true
Android.enableJetifier = false

Et enfin, synchronisez le projet puis compilez.

Si cela ne fonctionne pas, nettoyez le projet puis reconstruisez.

PS: Je ne parviens pas à faire fonctionner targetSdkVersion 'p'. Mon fichier build.gradle se termine comme suit:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 'Android-P'
    defaultConfig {
        applicationId "com.github.alvarosct02.demo"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.google.Android.material:material:1.0.0-alpha1'
    implementation 'com.Android.support.constraint:constraint-layout:1.1.0'

    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'

}

J'espère que ça marchera pour toi aussi.

40

J'ai perdu 2 jours à chercher une solution. Quiconque cherche encore une solution peut suivre les étapes ci-dessous:

  1. Mettez à jour votre Android Studio à la dernière version. 

  2. Mettez à jour vos compileSdkVersion et targetSdkVersion à 28.

    Android {
    
        compileSdkVersion 28
    
        defaultConfig {
            applicationId "com.your.appid"
            minSdkVersion 19
            targetSdkVersion 28
            versionCode 50
            versionName "1.50"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
            multiDexEnabled true
            setProperty("archivesBaseName", "your-app-$versionName")
            resConfigs "en"
         }
    }
    
  3. Allez dans la structure de votre projet et changez votre version de gradle en 4.10.

  4. Ajoutez cette dépendance d'abord: 

    implementation 'com.google.Android.material:material:1.0.0'
    
  5. Maintenant, supprimez toutes les dépendances de la bibliothèque de support:

    implementation "com.Android.support:design:$SUPPORT_LIBRARY_VERSION"
    implementation "com.Android.support:support-v4:$SUPPORT_LIBRARY_VERSION"
    implementation "com.Android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
    implementation "com.Android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION"
    implementation "com.Android.support:cardview-v7:$SUPPORT_LIBRARY_VERSION"
    implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.Android.support:multidex:1.0.3'
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    androidTestImplementation('com.Android.support.test.espresso:espresso- 
       core:2.2.2', {
    exclude group: 'com.Android.support', module: 'support-annotations'
    exclude group: 'com.google.code.findbugs', module: 'jsr305'
    })
    
  6. Maintenant, collez le texte suivant dans votre fichier gradle.properties:

    Android.useAndroidX = true
    Android.enableJetifier = true
    
  7. Dans votre fichier build.gradle au niveau du projet:

    dependencies {
        classpath 'com.Android.tools.build:gradle:3.2.0'
        classpath 'com.google.gms:google-services:4.1.0'
    };
    

Pour ceux qui utilisent Butterknife, ajoutez les lignes ci-dessous dans votre fichier build.gradle au niveau du projet:

allprojects {
    repositories {
    google()
    jcenter()
    maven { url "https://jitpack.io" }
    maven { url "https://dl.bintray.com/drummer-aidan/maven/" }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
  }
}

Et dans votre fichier module build.gradle, ajoutez ci-dessous les dépendances:

 implementation "com.jakewharton:butterknife:9.0.0-SNAPSHOT"
 annotationProcessor "com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT"
  1. Maintenant, avec Goto Build> Rebuild Project, vous risquez de recevoir beaucoup d’erreurs.
  1. Maintenant, référez-vous this link. 

    Il contient la liste de toutes les dépendances old (Android.support) vs new (androidx. *).

    Remplacez toutes vos anciennes importations par les nouvelles
    (Utilisez la fonction replaceAll du studio Android [ctrl + Maj + R] pour gagner du temps).
  1. Enfin, après avoir refacturé toutes les anciennes bibliothèques avec les nouvelles:
    Reconstruisez à nouveau le projet et si tout va bien, il devrait fonctionner.

Remarque: vous pouvez également utiliser Refactor> Migrer vers androidx dans Android Studio, mais cela ne fonctionne pas pour moi.

12
Ashu Tyagi

J'ai commencé à avoir cette erreur après la mise à niveau de ButterKnife vers la version 8.8.1.

Donc, je lance la commande gradle -q dependencies pour générer un rapport de dépendance, après quoi vous devriez voir d'où vient D8. Dans mon cas de la bibliothèque "ButterKnife":

+--- com.jakewharton:butterknife:8.8.1
|    |    \--- com.Android.support:support-compat:d8

Vous pouvez également voir vos dépendances Android en accédant à la vue Gradle de votre Android Studio (dans la barre d’outils Android Studio, accédez à "Affichage/Fenêtre/Gradue"), puis en sélectionnant la cible "androidDependencies" sous "Nom de projet/Tâches/Android "(Double-clic pour exécuter ou clic droit et exécuter).

Pour résoudre ce problème, j'ai ajouté ce code exclude module: 'support-compat' à mon "app/build.gradle" comme ci-dessous:

implementation ('com.jakewharton:butterknife:8.8.1') { 
     exclude module: 'support-compat' 
} 
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

J'espère que cela fonctionne pour quelqu'un d'autre:] Cheers!

6
GFPF

Android Studio v3.2 + résout ce problème. Il ajoute également un élément "Migrer vers AndroidX" dans le menu Refactor. Aucun contournement ou retour en arrière requis.

Mettez à jour Android Studio à partir de la chaîne bêta pour utiliser la version 3.2+ ou attendez la publication d'une version stable.

EDIT: Android Studio v3.2 est maintenant dans le canal stable. Il est important de ne plus utiliser les bibliothèques de support et de ne pas migrer vers les bibliothèques AndroidX, car le support des anciennes bibliothèques de support est terminé.

4
Always Lucky

Si vous incluez une bibliothèque ayant une dépendance transitoire sur la bibliothèque de support Android, vous devez également utiliser la fonctionnalité jetifier qui fait partie du plugin Android Gradle version 3.2.0-alpha14 ou supérieure. Vous pouvez déterminer si vous avez une bibliothèque qui dépend de la bibliothèque de support en exécutant votre tâche Gradle dependencies

Sur le blog du développeur Android ( https://Android-developers.googleblog.com/2018/05/hello-world-androidx.html ):

Si vous dépendez d'une bibliothèque qui référence l'ancienne bibliothèque de support, Android Studio mettra à jour cette bibliothèque pour faire référence à androidx à la place via la traduction de dépendance. La traduction des dépendances est automatiquement appliqué par le Gradine Plugin Android 3.2.0-alpha14, qui réécrit bytecode et ressources des dépendances JAR et AAR (et dépendances transitives ) pour référencer les nouvelles classes et artefacts. Nous fournirons également un outil de traduction autonome en tant que POT.

Dans votre fichier gradle.properties, assurez-vous que vous avez:

Android.enableJetifier=true Android.useAndroidX=true

J'ai eu ce problème avec Leak Canary sur un petit projet et il a été résolu en mettant à niveau le plugin Android Gradle vers la version appropriée. https://github.com/square/leakcanary/issues/1103

1
Victor Rendina

Si vous utilisez Android Studio V. 3.2.1, vous pouvez simplement aller à la barre d’outils ouverte Refactor -> migrer vers AndroidX et Android Studio se chargera du reste.

0
Zeyad Assem

Essayez d'ajouter 

Android.enableD8 = false

dans le fichier gradle.properties.

0
Ihar Paliashchuk

Utilisez ceci

   apply plugin: 'com.Android.application'
   apply plugin: 'kotlin-Android'

   Android {
   compileSdkVersion 28
   defaultConfig {
       applicationId "ir.uncode.newdesign"
       minSdkVersion 16
       targetSdkVersion 27
       versionCode 1
       versionName "1.0"
       testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
       release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-Android.txt'),'proguardrules.pro'
       }
    }
    }

   dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.Android.support:appcompat-v7:28.0.0-alpha3'
   implementation 'com.Android.support:cardview-v7:28.0.0-alpha3'
   implementation 'com.Android.support:design:28.0.0-alpha3'
   implementation 'com.Android.support.constraint:constraint-layout:1.1.1'
   implementation 'com.Android.support:animated-vector-drawable:28.0.0-alpha3'}
   repositories {
    mavenCentral()
   }

et Si le problème persiste, changez "import" dans class et xml.

comme :

import androidx.fragment.app.Fragment;

import Android.support.v4.app.Fragment;

ou

import androidx.core.app.ActivityCompat;

import Android.support.v4.app.ActivityCompat;

ou

com.google.Android.material.bottomappbar.BottomAppBar

Android.support.design.bottomappbar.BottomAppBar
0
Hamed Karami

J'utilise Android studio 3.3 version. J'ai perdu ma journée et demie à chercher cette solution. J'ai essayé toute la réponse dans ce post mais rien n'a aidé. Ensuite, je trouve le lien qui m'a aidé à résoudre l'erreur. 

J'ai supprimé la dépendance ci-dessous, j'ai ajouté,

implemntation 'com.google.Android.material:material:1.0.0'

Au lieu de cela, j'ai utilisé la bibliothèque de support de conception Android,

implementation 'com.Android.support:design:27.1.1'
0
Md Nakibul Hassan

Si vous voulez utiliser com.Android.support:support-v4:28.0.0-alpha1

alors vous devez utiliser 

com.Android.support:design:28.0.0-alpha1 

au lieu de

com.google.Android.material:material:1.0.0-alpha1.

0
KRIPA SHANKAR JHA