web-dev-qa-db-fra.com

Erreur: appel de méthode ambigu. FindViewById (int) dans AppCompactActivity et Activity

Je reçois le message d'erreur suivant: "Appel de méthode ambigu" lors de l'initialisation de la barre d'outils avec Android Studio 3.0 RC1. J'ai étendu mon activité avec AppCompatActivity et compilé mon application en utilisant 'compileSdkVersion 26' . Joindre une capture d'écran de l'erreur.  enter image description here

29
Sumit T

Si vous avez récemment mis à jour votre projet à l'API, essayez de le faire. 

Fichier -> Invalider les caches/redémarrer

puis

Fichier -> Projet de synchronisation avec des fichiers Gradle

cette résolution pour moi.

23
Upendra Shah

Mise à niveau vers appcompat 27 a résolu ce problème pour moi

5
asperon

Pour moi, changer la version de l'outil de génération en 27.0.2 a fonctionné, car toutes vos autres dépendances sont également l'API 27. 

buildToolsVersion '27.0.2'
4
Pikachu

J'ai récemment mis à niveau pour construire la version 27.0.2 et je suis confronté au même problème. Mais j'ai remarqué que la version de compileSdk était définie sur 25. Le changement de compileSdk en 27 résolvait le problème. 

3
deepdroid

Tu as

import Android.support.v7.app.AppCompatActivity
import Android.app.Activity

les deux dans votre code . Supprimez import Android.app.Activity comme je peux le voir, ce n'est pas nécessaire pour vous.

3
Northern Poet

"Fichier - Invalider les caches/redémarrer" a résolu mon problème.

3
Stanley Kou

Pour moi, aucune des solutions proposées ne fonctionnait, mais j’avais ce problème car j’avais à la fois 25 et 27 sdk Android installés sur mon ordinateur. Dès que j'ai enlevé le sdk 25, le problème a disparu. 

2
Mouss

J'ai rencontré le même problème avec Android Studio 3.0.0 build 171.4408382. Construire via Gradle sur la ligne de commande a bien fonctionné, mais IDE m'a présenté l'erreur mentionnée ci-dessus. J'ai essayé d'utiliser les API de niveau 26 avec appcompat v26.1.0 et les API de niveau 27 avec appcompat v27.0.1, mais aucune des deux combinaisons n'a fonctionné.

Ma "solution" consistait à rétrograder compileSdkVersion et targetSdkVersion vers le niveau 25 de l'API et la bibliothèque appcompat vers la version 25.4.0.

Pour toutes les combinaisons de versions mentionnées, j'ai utilisé le plugin Gradle v3.0.0 et l'outil de compilation Android v27.0.1.

1
paprika

Cela peut apparaître soudainement lors de l'exécution d'un analyseur de code tel que FindBugs-IDEA . Un moyen rapide de supprimer l'avertissement consiste à modifier temporairement la buildToolsVersion dans votre app/build.gradle, puis à la modifier à nouveau.

Par exemple, suivez ces étapes:

  1. Ouvrez votre fichier app/build.gradle.
  2. Changez buildToolsVersion en '26.0.1' puis synchronisez le projet (appuyez sur le bouton 'Sync Now' quand il apparaît en haut)
  3. Remplacez la buildToolsVersion par ce que vous aviez auparavant.
  4. Appuyez sur le bouton 'Sync Now'

Cela devrait effacer l'erreur.

1
Mr-IDE

Peut-être que vous avez une différence entre compileSdkVersion et targetSdkVersion

1
Satria Akbar

Pour moi, c’était la compileSdkVersion qui était différente des bibliothèques de support utilisées

0
hiddeneyes02

Tout d’abord, assurez-vous que vous n’avez pas de dépendances transitives utilisant des bibliothèques de support plus anciennes. Exécutez la commande suivante et assurez-vous qu'aucune ancienne bibliothèque de support n'est utilisée.

gradlew :app:dependencies

Assurez-vous que votre fichier Gradle est mis à jour avec les dernières dépendances. Par exemple: compileSdkVersion 27, targetSdkVersion 27, buildToolsVersion 27.0.3. etc. Il serait également utile de s’assurer qu’aucun des types d’application n’utilise un targetSdkVersion personnalisé.

Ctrl + clic sur la méthode findViewById. Il vous montrera les 2 méthodes (peut-être plus?) En conflit. Dans mon cas, le conflit était entre la méthode findViewById de l'API 23 et l'API 27. Par conséquent, j'ai dû supprimer le SDK et les sources pour la version Android 23. Une fois que je l'ai retiré et que j'ai invalidé les caches/redémarrages, mon problème a été résolu.

0
Randev

si les réponses ne résolvent pas votre problème, vous pouvez réinitialiser votre studio Android . J'ai résolu avec réinitialiser mon studio Android . Pour réinitialiser: https://stackoverflow.com/a/19397632/3129822

0
Ferhat KOÇER