Ошибка: вызов неоднозначного метода. И findViewById (int) в AppCompactActivity и Activity

Я получаю сообщение об ошибке: "Неоднозначный вызов метода" при инициализации панели инструментов с помощью Android Studio 3.0 RC1. Я расширил свою деятельность с помощью AppCompatActivity и скомпилировал свое приложение, используя "compileSdkVersion 26". Прикрепление скриншота об ошибке. введите описание изображения здесь

Ответ 1

Если вы недавно обновили свой проект до API, попробуйте сделать

File → Invalidate Caches/Restart

затем

Файл → Синхронизировать проект с файлами Gradle

это решение для меня.

Ответ 2

Обновление до appcompat 27 решило это для меня

Ответ 3

Для меня изменилась версия инструмента сборки до 27.0.2, учитывая, что все ваши другие зависимости - это API 27.

buildToolsVersion '27.0.2'

Ответ 4

У вас есть

import android.support.v7.app.AppCompatActivity
import android.app.Activity

оба в вашем коде. Удалите import android.app.Activity, как я вижу, это не требуется для вас.

Ответ 5

"Файл - Invalidate Caches/Restart" Решил мою проблему.

Ответ 6

Недавно я обновил для сборки инструменты версии 27.0.2 и столкнулся с той же проблемой. Но заметил, что у меня была версия compileSdk, установленная на 25. Изменение компиляцииSdk до 27 разрешило проблему.

Ответ 7

Для меня ни одно из данных решений не сработало, однако у меня возникла эта проблема, потому что на моем компьютере были установлены как 25, так и 27 Android SDK. Как только я удалил SDK 25, проблема исчезла.

Ответ 8

Возможно, у вас есть разница между compileSdkVersion и targetSdkVersion

Ответ 9

Я столкнулся с той же проблемой с Android Studio 3.0.0 build 171.4408382. Построение через Gradle в командной строке работало нормально, но IDE представила мне вышеупомянутую ошибку. Я попытался использовать API-уровень 26 с appcompat v26.1.0 и уровнем API 27 с помощью appcompat v27.0.1, но ни одна из них не работала.

Моим "решением" было понизить параметры компиляцииSdkVersion и targetSdkVersion до уровня API 25 и библиотеки appcompat до версии 25.4.0.

Для всех упомянутых комбинаций версий я использовал Gradle плагин v3.0.0 и инструмент сборки Android v27.0.1.

Ответ 10

Это может внезапно появиться при запуске анализатора кода, такого как FindBugs-IDEA. Быстрый способ снять предупреждение - временно изменить buildToolsVersion в вашем app/build.gradle затем снова изменить его.

Например, выполните следующие действия:

  1. Откройте файл app/build.gradle.
  2. Измените buildToolsVersion на " '26.0.1' затем синхронизируйте проект (нажмите кнопку "Синхронизировать сейчас", когда она появится вверху)
  3. Измените buildToolsVersion обратно на то, что у вас было раньше.
  4. Нажмите кнопку "Синхронизировать сейчас"

Это должно очистить ошибку.

Ответ 11

Если ответы не решают вашу проблему, вы можете reset свою студию Android. Я решил с reset моей андроид-студией. Для reset: fooobar.com/questions/106655/...

Ответ 12

Сначала убедитесь, что у вас нет транзитивных зависимостей, которые используют старые библиотеки поддержки. Запустите следующую команду и убедитесь, что старые библиотеки поддержки не используются.

gradlew :app:dependencies

Убедитесь, что ваш Gradle файл обновлен с учетом последних зависимостей. Например: compileSdkVersion 27, targetSdkVersion 27, buildToolsVersion 27.0.3. и т.д. Также было бы полезно убедиться, что ни один из ваших приложений не использовал пользовательский targetSdkVersion.

Ctrl + клик по методу findViewById. Он покажет вам 2 (возможно, больше?) Конфликтующих методов. В моем случае конфликт был между методом findViewById из API 23 и API 27. Поэтому мне пришлось удалить SDK и исходные коды для Android версии 23. Как только я удалил его и сделал Invalidate Caches/Restart, это решило мою проблему.

Ответ 13

Для меня в моих модулях были разные версии библиотеки поддержки.

Ответ 14

Для меня это был compileSdkVersion который отличался от используемых библиотек поддержки.