54 votes

Android Support Repo 46.0.0 avec Android Studio 2.3

J'ai mis à jour aujourd'hui mon soutien référentiel de 46.0.0 que l'Android Studio de notification ont sauté.

Je vais l'erreur ci-dessous :

Erreur:échec de l'Exécution de la tâche:app:processDevDebugManifest'.

Manifeste de la fusion a échoué : l'Attribut meta-data#android.support.VERSION@value valeur=(25.3.0) à partir de [com.android.soutien:le soutien-v13:25.3.0] AndroidManifest.xml:27:9-31 est également présent à [com.android.support:préférence-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38 valeur=(26.0.0-alpha1). Suggestion: ajouter outils:replace="android:valeur"' à l'élément à AndroidManifest.xml:25:5-27:34 à remplacer.

J'ai mis à jour tous mes dépendances à usage de Révision 26.0.0 Alpha 1 de 25.3.0, mais il s'avère que j'ai besoin de remonter le compileSdk de 25 à 26. Vous ne pouvez pas faire cela si vous avez COMME 2.3, vous avez besoin pour obtenir de l'instabilité de l'alpha/beta version de canaries.

Ce lien montre les changements: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-alpha1

Et concernant la migration vers la nouvelle android O, c'est le lien: https://developer.android.com/preview/migration.html

Il semble en utilisant COMME version stable ne fonctionne pas avec le nouveau référentiel.

Comment puis-je revenir à Android Studio Référentiel Version 45 au lieu de le nouveau 46?

** Update: La fusion de manifester montre l'un de la bibliothèque générée manifeste contient

<meta-data
        android:name="android.support.VERSION"
        android:value="26.0.0-alpha1" />

Mais comme c'est un fichier généré édition est inutile, c'est pourquoi pour l'instant je collerais à rev 45 jusqu'à ce que la nouvelle QU'il est stable construire

164voto

Eugen Pechanec Points 342

Quel est le problème

Certaines bibliothèques dépendent de la version "X ou version plus récente d'Android bibliothèques de prise en charge afin de Gradle de la résolution des dépendances attrape tout ce qui est le plus récent disponible en ignorant vous avez une version précise indiquée dans votre dependencies bloc.

Ce n'est pas ce que vous voulez. Vous voulez que toutes les bibliothèques de prise en charge avec la même version et version majeure doit correspondre à compiler version du SDK.

Quelle est la solution

Heureusement, vous pouvez forcer un soutien spécifique version de bibliothèque.

Faire cela à la fin de votre application module build.gradle:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            // Skip multidex because it follows a different versioning pattern.
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.0'
            }
        }
    }
}

Bien sûr remplacer la version avec tout ce que vous êtes en utilisant.

La Version de valeurs pour les bibliothèques de prise en charge en dependecies bloc sont maintenant hors de propos.

Si vous avez des doutes

C'est une bien documenté méthode et ça fonctionne.

Que pouvez-vous faire pour aider

Trouver les bibliothèques qui dépendent d'une gamme de bibliothèque de prise en charge des versions

gradlew dependencies --configuration compile -p <module name> | grep ,

et de laisser les auteurs de ladite bibliothèques savent qu'ils doivent transitivement dépendent le plus ancien de soutien libs leur bibliothèque peut faire avec.

Ceci vise à éviter le problème complètement.

3voto

Hamza Rashid Points 469

Étape 1

Pour échapper à Gradle vérifier incompatible com.android.support versions d'une solution rapide consiste à ajouter le code suivant dans l'app module build.gradle.

dependencies {
    //noinspection GradleCompatible
}

C'est une solution temporaire qui ne résout pas les problèmes sous-jacents! Elle a permis de continuer à développer votre application avec un minimum de modifications.

Étape 2

Ajoutez à cela le principal fichier de manifeste AndroidManifest.xml.

<meta-data
    tools:replace="android:value"
    android:name="android.support.VERSION"
    android:value="25.3.1" />

Cette entrée seront supprimés lors de l'une des prochaines mises à jour du support référentiel est disponible.

Étape 3

Ajoutez le code suivant à la fin de l'application du module build.gradle le fichier:

configurations.all {
    resolutionStrategy.eachDependency { details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.3.1'
            }
        }
    }
}

NB: Il est recommandé de vous assurer que votre Gradle bibliothèques sont mises à jour et compatible afin d'éviter des erreurs d'exécution.

2voto

Rajesh Tiwari Points 261

Leur est une solution pour y remédier:

  1. Déplacer vers la vue Explorateur de projets
  2. Atteindre au fond leurs bibliothèques externes
  3. Voir quelle bibliothèque utilise 26.0.0-alpha6
  4. Maintenant, écrivez ceci dans app.gradle sur la base de la bibliothèque à l'étape 3

Ex. dans mon cas:

 configurations.all {
    resolutionStrategy.force 'com.android.support:appcompat-v7:25.3.0'
    resolutionStrategy.force 'com.android.support:support-v13:25.3.0'
}
 

Cela forcera le projet à utiliser la bibliothèque mentionnée.

1voto

Zoran P Points 171

Je pense que la meilleure solution est de revenir à l'Android Support Library version 45.

Pour ce faire, ouvrez ce lien (changement de version de ce qui convient à vos besoins)

https://dl-ssl.google.com/android/repository/android_m2repository_r45.zip

Lorsque téléchargé, décompressez-le et copiez m2repository pour android-sdk-root-dossier\extras\android. Assurez-vous de supprimer l'existant m2repository avant de décompression pour éviter les problèmes.

-1voto

Ali Masarra Points 1

pour moi le problème était que les versions n'étaient pas les mêmes ici

 implementation 'com.android.support:appcompat-v7:**26.0.0-beta1**'
implementation 'com.android.support:support-v4:**26.0.0-beta1**'
implementation 'com.android.support:design:**26.0.0-beta1**'
 

et la vue de la carte était

 compile 'com.android.support:cardview-v7:26.1.0'
 

donc j'ai changé les bibliothèques de versions à ..

 implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:design:26.1.0'
 

espérons que cette aide, bonne chance

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X