Не вдається вирішити символ "AppCompatActivity"


212

Я щойно намагався використовувати Android Studio. Я створив порожній проект і спробував створити, Activityякий розширюється AppCompatActivity. Невдача Android Studio "каже", що це

Не вдається вирішити символ "AppCompatActivity"

У мене є compile "com.android.support:appcompat-v7:22.0.+"список залежностей від мого модуля "app" та кілька разів перебудовувався проект. Однак я можу тільки користуватися ActionBarActivity. Що я роблю неправильно?


Ви використовуєте правильну версію збірки? ваш SDK оновлений?
привид розмовляючи

5
@Lingviston ви не використовуєте правильну версію. Вам слід скористатисяcom.android.support:appcompat-v7:22.1.0
Дамсон,

2
Ну, тоді не було такої версії.
Лінгвістон

Але зараз є, і це вирішує проблему :)
JY2k

Відповіді:


350

Трохи доповнення до інших відповідей тут для тих, хто має ту саму помилку під час використання правильної версії lib та правильного класу.

Коли я перейшов до

appcompat-v7:22.1.0

У якому ActionBarActivityзастарілий і порожній, і AppCompatActivtyце шлях, через якийсь збій в Android Studio, він не зовсім піднявся на зміну версії.

незважаючи на те, що Gradle працює без помилок, IDE постійно говорив Cannot resolve symbol 'AppCompatActivity'(і він також був недоступний під час Ctrl+Nпошуку)

Я зазирнув у .idea/librariesпапку і помітив, що для нової версії lib немає відповідного метафайлу.

Отже, використовуючи старий надійний File-> Invalidate Caches / Restart зробив свою справу. Завжди намагайтеся це робити, коли ви відчуваєте, що щось із магічною програмою Android магічно не так. А потім вимкнути режим офлайн та синхронізувати.


2
Не працює для мене і кожен раз, коли я оновлюю програму appcompat, у мене виникають багато проблем.
3c71

Для мене ця помилка з'явилася під час оновлення до Android Studio 2.0 - Очищення кешу та перезавантаження, як зазначено вище, працювали чудово!
ColossalChris

Я compile 'com.android.support:appcompat-v7:23.3.0'вже в своєму build.gradle ... але все-таки отримую помилку
dsdsdsdsd

3
Якщо це не спрацювало, спробуйте це, працювало для мене: stackoverflow.com/a/36641765/3758439
Джордж

те саме в IntelliJ IDE.
A-Sharabiani

163

Якщо м'які методи через файл gradle / "Недійсні кеші" та інші інструменти IDE не працюють, скористайтеся важким способом:

  1. Вийдіть з Android Studio
  2. Перейдіть у своєму проекті до .ideaпапки
  3. Просто перейменуйте librariesпапку
  4. Перезапустіть Android Studio. Тепер він повинен відтворити librariesпапку і знову працювати.

Це працювало на мене далі

Android Studio 3.1.2
Build #AI-173.4720617, built on April 13, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

Шахбаз Алі підтвердив, це також працює на

Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-38-generic

moujib підтвердив, він працює на Android Studio 3.2.1


Тай для виправлення! Також хотілося б знати, чи використовував кожен користувач тут версію ПК або версію iOS Android Studio. У мене є кілька друзів-розробників, які ніколи не мали жодної з цих проблем на iOS. У мене було багато проблем на ПК. Не впевнений, скільки разів я намагався очистити / відновити / недійсний кеш ...

Ми з Шахбазом Алі використовували версію Linux, moujib лише прокоментував, що це рішення працює в 3.2.1
DBX12,

70

Сьогодні (22 квітня) ви можете використовувати новий AppCompatActivityвипущений з підтримкою бібліотек v 22.1.0.

Просто змініть свою залежність:

compile "com.android.support:appcompat-v7:22.1.0"

Тут ви можете знайти більше інформації про цей новий клас.


7
Хм, я використовую більш високу версію, але все ще стикаюся з проблемоюcompile 'com.android.support:appcompat-v7:23.1.1'
behelit

31

Це занадто просто. Є кроки, які потрібно виконати

1-Вихід Android-студії.

2 - Перейдіть до каталогу проектів.

3 - Щось подібне в моєму випадку (F> Android-> YourProjectName ->. Ідея).

4) - видалити папку бібліотек, присутні в папці .idea.

5) - відновіть андроїд-студію. і ваше питання вирішено.


Я б ніколи не видаляв папку, якщо щось піде не так. Достатньо просто перейменувати його. У гіршому випадку, якщо папка бібліотек не відновлюється, ви можете повернутися та відновити початкове ім'я папки "бібліотеки". Після того, як все, як відомо, працює, ви можете повернутися та видалити папку, яку ви перейменували. Якщо ваша студія пошкоджена, вона може не відновити папки - завжди будьте обережні, видаляючи файли.

28

Я це виправив, переходячи до build.gradleфайлу, і в залежності appcompatодин, щось на зразок компілювати'com.android.support:appcompat-v7:XX.X.X'

Змінив його на компіляцію 'com.android.support:appcompat-v7:XX.X.+'

Потім натисніть на Sync. Якщо все інше у вашому коді є правильним, усі червоні чіткі лінії повинні пройти.


7
+1, OMG це працювало для мене. :) BTW +знак є для Hey Gradle, якщо будь-яка нова версія цього ж випуску є доступною для себе :). Я використовував com.android.support:appcompat-v7:25.3.1зараз це зробив трюк: com.android.support:appcompat-v7:25.3.+Хоча ЯК попереджав мене: уникайте використання + у номерах версій; може призвести до непередбачуваних і неповторних збірок (com.android.support:appcompat-v7:25.3.+)
fWd82

13

Перевірте також помилки на помилках, я витратив цілий день на пошуки рішень, коли я фактично набрав AppCompactActivity замість AppCompatActivity


13

Я отримав Cannot resolve symbolпомилку для AppCompatActivity та багатьох інших класів та методів після оновлення Android Studio з 2.2.3 до 2.3, оновлення плагіна Android Gradle до 2.3.0 та оновлення Gradle до 3.3.

File -> Invalidate Caches / Restart не вирішили питання.

Preferences -> Build, Execution, Deployment -> Gradleпоказано Use local gradle distributionвибране в домашній частині Gradle: / Applications / Android Studio.app/Contents/gradle/gradle-2.14.1 та відображається попередження про неправильне розташування gradle .

Вирішено питання шляхом вибору Use default gradle wrapper (recommended).
Можливо, лише вказівка ​​на нове місцеве місце розповсюдження також спрацює.


11

Неможливо вирішити символ AppCompatActivity Issue.

Зробіть простий крок, щоб вирішити проблему.

i) Вихід із студії Android.

ii) Перейдіть до каталогу проектів.

iii) Знайдіть папку .idea у каталозі свого проекту.

iv) Видалити папку .idea .

v) Перезавантажте студію Android.

vi) Питання буде вирішено.


Якщо зайти всередину папки .idea і перейменувати папку "бібліотеки" на щось інше, трюк також працює. Якщо щось піде не так, вам доведеться лише повернутися назад і перейменувати папку бібліотек назад до її оригінальної назви та спробувати щось інше, а не намагатися відновити всю папку .idea.

8

Спробуйте це. В Android Studio, після введення залежності в build.gradle. Перейдіть до будівництва -> Очистити проект.

Це працювало для мене.


7

Це справді божевільно, я спробував все, синхронізував з файлами Gradle, визнав недійсним і перезапустив студію Android. Проблема все ще зберігалася. Останнім способом було видалення папки .idea / library, і це спрацювало як шарм.


6

Ви можете використовувати нову програму AppCompatActivity appcompat-v7: 22.1. + Просто додайте це до свого градуса:

компілювати 'com.android.support:appcompat-v7:22.1.1'


6

Для мене проблема вирішена, коли я оновив appcompact v7 до останнього ..

компілювати 'com.android.support:appcompat-v7:25.3.0'

Сподіваюся, це допомагає ... :)


6

Тож мій колега підштовхнув їх, local.propertiesякі все порушили. Я скопіював свій шлях SDK з іншого додатка і зробив:

File -> Sync Project with Gradle Files

5

У мене ця проблема була з Android SDK 23, розробляючи на Mac OS X Yosemite Machine. Виявилося, що у мене не було Java SDK 7.

Після того, як я встановив Java SDK 7 і вказав SDK з Android Studio на новий SDK, для мене все працювало.

Ось наступні кроки:

1) Вимкнення SDK для Android

2) Встановіть Java SDK для Mac OS X з http://www.oracle.com/technetwork/java/javase/downloads/index.html

3) Запустіть Android SDK і вкажіть SDK для цього проекту на нову 1.7 Java SDK, перейшовши до Файл -> Структура проекту -> Місце розташування JDK

4) Перезавантажте Android Studio

Сподіваюся, що це допоможе


3

Не забудьте натиснути Alt+ Enterабо додати імпорт.

import android.support.v7.app.AppCompatActivity; 

3

ніхто з нижче не вирішив мого питання

  • Перезавантажте Android
  • Файл >> Проект синхронізації з файлами Gradle
  • Побудувати >> Очистити проект
  • Побудувати >> Проект відновлення
  • Файл >> Недійсні кеші / Перезапуск

Натомість я вирішив це, оновивши версію appcompat та дизайнерських залежностей до останньої версії. Для цього: перейдіть до розділу build.grade (Модуль: додаток) >>, а потім натисніть ALT + ENTER на обох додатках та залежності дизайну, а потім виберіть показана версія в моєму випадку це 24.2.1, як показано на малюнку введіть тут опис зображення


3

Я оновив Gradle 2.3.3 до 4.4 і отримав помилку в AppCompatActivity, а також Cardview. Я спробував з чистим проектом та відновити проект. Це не спрацює, тоді я переходжу до папки Project -> .idea -> створюю резервну копію папки бібліотек і видаляю її -> потім Rebuild Project, яка вирішила мою проблему.


3

Давайте рухатимемося крок за кроком: спочатку очистіть проект за допомогою

Збірка-> Очистити

якщо це не допомагає, то використовуйте другий крок

Файл> Недійсні кеші / Перезавантаження ...

Але справжня проблема починається тоді, коли всі перераховані вище варіанти не спрацьовують, тому використовуйте остаточне рішення - закрити проект та перейти до каталогу розташування проекту та видалити

.idea

Ви можете знову відкрити свій проект.


2

Після оновлення до останньої бібліотеки підтримки мені довелося оновити до останньої версії Android-студії (бета-версії) та версії gradle до того, як IDE знову визнав AppCompatActivity (вимкнення кеш-пам'яті та перезапуск не зробили фокус)


2

Додайте цю залежність у збірку .gradle проекту.

Дотримуйтесь наведеного нижче прикладу.

dependencies {

    compile 'com.android.support:appcompat-v7:22.1.0'
}

Я використовую :22.0.0і не можу знайти AppCompatActivityклас. Я маю встановити це принаймні на 22.1.0. Дякую.
haxpor

2

Істистський шлях

  • Відкрийте рівень програми build.gradleта видаліть залежність appcompact-v7 та синхронізацію.
  • Знову додайте залежність та синхронізуйте.

Помилка пішла!

До цього

раніше

Після

після


2

Якщо ви додасте підтримку AndroidX у файл Gradle.properties, наприклад

android.useAndroidX=true
android.enableJetifier=true

Якщо ви використовуєте Gradle версії більше 3,2, звичайна залежність Appcompat, наприклад

implementation 'com.android.support:appcompat-v7:27.1.1

звичайна робота. Замініть цю залежність на:

implementation 'androidx.appcompat:appcompat:1.1.0'

Крім того, змініть імпорт AppCompatActivity у файл вашого класу з цього:

import android.support.v7.app.AppCompatActivity;

до цього:

import androidx.appcompat.app.AppCompatActivity;

Зроблено


1

Вам потрібно просто внести деякі зміни у файл додатків Gradle, додавши залежність

компілювати "com.android.support:appcompat-v7:XX:YY:ZZ"

у той час як XX: YY: ZZ - код версії, який ви використовуєте у вашому файлі gradle, інакше якщо ви встановите цю версію нижче або вище, ніж ви використовуєте, то ваш додаток зіткнеться з деякими проблемами, такими, що іноді вийде з ладу


1

Я просто оновлюю свою андроїд-студію від 2.3.2 до версії 3.1.2. і ця помилка виникає.

Я очищаю проект, відновлюю проект, недійсний кеш / перезапуск, але нічого не працює.

Я усуваю цю помилку, оновивши бібліотеку appcompat з

компілювати 'com.android.support:appcompat-v7:23.4.0'

до

компілювати 'com.android.support:appcompat-v7:25.1.1'

у файлі build.gradle програми.


1

Якщо недійсне кешування не допомагає, просто закрийте проект, а потім знову відкрийте його. Кроки:

  • Файл> Закрити проект
  • Видаліть проект зі стартового списку проектів
  • Закрийте Android Studio
  • Відкрийте Android Studio
  • Відкритий існуючий проект з цим проектом


0

Я розповім, як я вирішив цю проблему в затемненні. Завантажте поштовий файл за цим посиланням. https://github.com/dandar3/android-support-v7-appcompat, потім витягніть цей файл, відкрийте проект, у папці lib ви побачите один jar-файл під назвою "android-support-v7-appcompat", додайте цей файл jar у ваш проект. Це воно.введіть тут опис зображення


0

Це може бути різницею версій у рівні додатка, перевірити його один раз, а потім відновити його


0

Для мене не працювало жодне з рішень. Але я дізнався, що у моїх зовнішніх бібліотеках відсутні всі бібліотеки бібліотек підтримки. І в інших проектах AppCompatActivity була вирішена без проблем.

Для мене це працювало над створенням нового проекту та копіювання всіх матеріалів старої папки src у новий проект.

Я не знаю точно, чому, але якщо нічого не працює, це може бути остання можливість. Просто, якщо хтось має такі самі проблеми, як я.


0

Спробуючи м'які способи роботи, використовуйте складний спосіб: Вийдіть із поточного екрану Android Studio та перейдіть до свого проекту в папку .idea Перейменуйте папку "Бібліотеки-> lib_pre".

Перезапустіть Android Studio. Тепер він відтворить папку "Бібліотеки" і знову буде працювати плавно. Android Studio 3.1.3

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.