Ответ 1
Хорошо, я исправил его, перестроив его, чтобы выполнить чистую сборку. /gradlew в четвертый раз... Android Studio - это странная вещь.
Я пытаюсь понять, почему моя студия Android не распознает библиотеку AppCompat v7 правильно. Оператор импорта ниже отображается как серый и говорит, что нет пакета для support.v7.app. Ниже приведен файл моей деятельности:
import android.support.v7.app.AppCompatActivity;
public class XApplicationActivity extends AppCompatActivity
My build.grade:
compile "com.android.support:appcompat-v7:22.0.0"
compile "com.android.support:support-annotations:$ANDROID_SUPPORT_VERSION"
compile "com.android.support:support-v4:$ANDROID_SUPPORT_VERSION"
Настройки моего проекта:
minSdkVersion = 14
targetSdkVersion = 21
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
Итак, я очень смущен, почему это все еще дает мне проблемы. Вещи, которые я уже пробовал:
Кто-нибудь знает какие-либо исправления? Это стоило мне много времени, и это действительно расстраивало.
Хорошо, я исправил его, перестроив его, чтобы выполнить чистую сборку. /gradlew в четвертый раз... Android Studio - это странная вещь.
Для меня,
Даже после обновления до appcompat-v7:22.1.0
, в котором добавлен AppCompatActivty
проблема не была решена для меня, Android Studio давала ту же проблему
Не удается разрешить символ "AppCompatActivity"
Иногда очистка помощи в кешках от android studio.
В студии Android я просто очистил кеши и перезапустил следующий вариант -
File- > Invalidate Caches/Restart
1. Удалите папку .idea
2.Закройте и снова откройте проект
3.File → Синхронизировать проект с файлами Gradle
Это сработало для меня
AppCompatActivity была добавлена только в версии 22.1.0 библиотеки поддержки. До этого он назывался ActionBarActivity.
Вы должны использовать одну и ту же версию для всех ваших библиотек поддержки. На момент написания последней версии последняя версия была 23.1.1 (вы можете узнать последнюю версию здесь https://developer.android.com/tools/support-library/index.html#revisions), поэтому раздел зависимостей вашего файла Gradle должен выглядеть так
implementation "com.android.support:support-v4:23.1.1"
implementation "com.android.support:appcompat-v7:23.1.1"
implementation "com.android.support:support-annotations:23.1.1"
Нам не нужно удалять файлы, просто отмените кеши для перезагрузки конфигурации:
Если вы используете AndroidX вместо Android, вам нужно изменить
import android.support.v7.app.AppCompatActivity;
в
import androidx.appcompat.app.AppCompatActivity;
и изменить
<android.support.constraint.ConstraintLayout>
в
<androidx.constraintlayout.widget.ConstraintLayout>
Решение, которому я следовал, кратко изложено в следующих шагах:
Я изменил с "... extends ActionBarActivity" на "... extends AppCompatActivity" и попробовал очистку, перезагрузку, Invalidate Caches/Restart и ничего не получал. Все мои версии были до последней версии.
Что в конечном итоге решило, было убедиться, что мой импорт был правильным:
import android.support.v7.app.AppCompatActivity;
По какой-то причине он не настроился автоматически, как я привык, и мне пришлось добавить его вручную.
Надеюсь, что это поможет кому-то!
Я получил ту же самую точную ошибку. В случае, если это помогает другим.. документирование того, что сработало для меня, полезно для самых последних (14 января 2017 года). Пробовал все Invalidate, строит чистую, даже удаляя .gradle/, настраивая библиотеки поддержки и т.д. На несколько ответов.
Я обнаружил, что обновление настроек .gradle gradle исправлено (2.1.3) что-то в gradle toolchain кажется classpath 'com.android.tools.build:gradle:2.2.3'
Лучшее решение - перейти в File> Invalidate Caches & Restart
Затем в диалоговом меню... Нажмите Invalidate Caches & Restart. Подождите минуту или сколько потребуется времени для сброса вашего проекта, тогда вы должны быть хорошими.
-
Я должен отметить, что я также столкнулся с проблемой ссылки на файл ресурсов или файл "R", который был внутри библиотеки compileOnly, которая была у меня внутри моего gradle. (т.е. библиотека compileOnly> res> ссылающийся xml файл) Я прекратил ссылаться на этот файл в своем коде Java, и он мне помог. Так что будьте осторожны с тем, где вы ссылаетесь на файлы.
У меня была та же проблема в моем недавно запущенном проекте с минимальным API 23, и, наконец, я добавил эти строки кода в мой файл зависимостей gradle, и это решило ошибку :)
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:support-media-compat:28.0.0'
Если вы уже пробовали
Все еще сталкивается с проблемой, пожалуйста, прочитайте ниже
Я попробовал все упомянутое во всех ответах и потерпел неудачу.
Перейти к gradle.properties сделать эти флаги ложными
android.useAndroidX = ложь
//Автоматическое преобразование сторонних библиотек для использования AndroidX
android.enableJetifier = ложь
Вышеуказанные флаги были
"правда, для меня и, следовательно, Gradle не будет загружать компоненты V7"
Удалите папку .idea в вашем проекте, которая является скрытой папкой. Зайдите в ваш проект в системе и нажмите Ctrl + H, он будет виден, затем удалите его. Теперь перезапустите вашу андроид студию. Я разрешаю. Это работает для меня.
Справочная информация:
Моя IDE
Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b02 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
Первое решение: снова импортируйте проект и не соглашайтесь обновлять плагин для Android.
Второе решение: ваши файлы должны содержать эти фрагменты.
build.gradle:
buildscript {
repositories {
jcenter()
google()//this is important for gradle 4.1 and above
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3' //this android plugin for gradle requires gradle version 4.4 and above
}
}
allprojects {
//...
repositories {
jcenter()
google()//This was not added by update IDE-wizard-button.
//I need this when using the latest com.android.support:appcompat-v7:25.4.0 in app/build.gradle
}
}
Либо следуйте рекомендациям вашей IDE, чтобы обновить версию Gradle до версии 4.4, либо подумайте об этом в gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Необязательное изменение buildToolsVersion в app/build.gradle:
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
app/build.gradle: закомментируйте зависимости и дайте сбойу сборки (автоматически или вызовите ее)
dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])
//compile 'com.android.support:appcompat-v7:25.1.0'
}
app/build.gradle: еще раз прокомментируйте зависимости. Было рекомендовано изменить их от компиляции до реализации, но пока это просто проблема предупреждения.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.1.0'
}
После перестройки проекта оператор импорта больше не должен быть серым; попробуйте вызвать Ctrl + h в классе. Но по какой-то причине маркеры ошибок в этих ссылках на классы все еще присутствуют. Чтобы избавиться от них, нам нужно спрятать и восстановить представление дерева проекта или, альтернативно, закрыть и снова открыть проект.
Наконец то это.
Дальнейшие чтения:
Используйте новые конфигурации зависимостей
Если вы предпочитаете картинку для моего решения, вы можете посетить мой блог
File-> Invalidate Caches/Restart работает для меня.
Если данные решения не работают, создайте новый проект с языком "KOTLIN", даже если ваша работа на Java. Затем замените "главную" папку нового проекта на "главную" папку старого.
пользователи androidX
Измените minSdkVersion на 21-й уровень API.
как это minSdkVersion 21
или создайте приложение с помощью compileSdkVersion 28
, а также измените targetSdkVersion
на targetSdkVersion 28
и вы увидите, что v7 ошибка исчезнет. После этого, если у вас возникли проблемы с созданием панели инструментов или другого виджета. нажмите Alt + Enter и создайте для него метод.