Ich versuche herauszufinden, warum mein Android-Studio die AppCompat v7-Bibliothek nicht richtig erkennt. Die folgende Importanweisung wird grau angezeigt und besagt, dass es kein Paket für support.v7.app gibt. Unten ist meine Aktivitätsdatei:
import android.support.v7.app.AppCompatActivity;
public class XApplicationActivity extends AppCompatActivity
Meine 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"
Meine Projekteinstellungen:
minSdkVersion = 14
targetSdkVersion = 21
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
Ich bin wirklich verwirrt darüber, warum mir das immer noch Probleme bereitet. Dinge, die ich bereits versucht habe:
- Projekt reinigen / umbauen
- Caches ungültig machen und neu starten
- Überprüfen Sie eine Milliarde Mal, ob ich die Support-Bibliothek installiert habe (ich habe unbedingt das neueste Support-Repository und die neuesten Bibliotheken installiert).
Kennt jemand irgendwelche Korrekturen? Es hat mich viel Zeit gekostet und ist wirklich frustrierend.
1. Löschen Sie den Ordner
.idea. 2. Schließen Sie das Projekt und öffnen Sie es erneut.
3.Datei -> Projekt mit Gradle-Dateien synchronisieren
Das hat bei mir funktioniert
quelle
Wir müssen keine Dateien löschen, sondern nur die Caches ungültig machen, um die Konfiguration neu zu starten:
quelle
AppCompatActivity wurde nur in Version 22.1.0 der Support-Bibliothek hinzugefügt. Davor hieß es ActionBarActivity.
Sie sollten für alle Support-Bibliotheken dieselbe Version verwenden. Zum Zeitpunkt des Schreibens ist die neueste Version 23.1.1 (die neueste Version finden Sie hier https://developer.android.com/tools/support-library/index.html#revisions ), also der Abschnitt mit den Abhängigkeiten Ihrer Gradle-Datei sollte so aussehen.
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"
quelle
Okay, ich habe es behoben, indem ich es neu aufgebaut habe, um zum vierten Mal ein ./gradlew clean Assemble zu erstellen ... Android Studio ist eine seltsame Sache
quelle
Die Lösung, der ich folgte, ist in den folgenden Schritten zusammengefasst:
quelle
Wenn Sie es bereits versucht haben
"com.android.support:support-v4:23.1.1"
"com.android.support:appcompat-v7:23.1.1"
"com.android.support:support-annotations:23.1.1"
Immer noch vor dem Problem, dann lesen Sie bitte unten
Endlich die Lösung gefunden
Ich habe alles versucht, was in allen Antworten erwähnt wurde, und bin gescheitert.
Gehen Sie zu gradle.properties und machen Sie diese Flags falsch
// Bibliotheken von Drittanbietern automatisch für AndroidX konvertieren
Die oben genannten Flaggen waren
quelle
Ich habe von "... erweitert ActionBarActivity" zu "... erweitert AppCompatActivity" geändert und versucht, Caches zu bereinigen, neu zu starten, ungültig zu machen / neu zu starten und kam nicht weiter. Alle meine Versionen waren auf dem neuesten Stand.
Was es schließlich löste, war sicherzustellen, dass mein Import korrekt war:
import android.support.v7.app.AppCompatActivity;
Aus irgendeinem Grund wurde es nicht automatisch eingerichtet, wie ich es gewohnt war, und ich musste es manuell hinzufügen.
Hoffe das hilft jemandem!
quelle
Ich hatte das gleiche Problem in meinem neu gestarteten Projekt mit mindestens API 23, und schließlich habe ich diese Codezeilen in meine Gradle-Abhängigkeitsdatei eingefügt und es hat den Fehler behoben :)
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'
quelle
Ich habe genau den gleichen Fehler mit Für den Fall, dass es anderen hilft .. zu dokumentieren, was für mich nützlich war für die neuesten (14. Januar 2017) neuesten alles. Versuchte alle Invalidate, Build Clean, löschte sogar .gradle /, optimierte die Support-Bibliotheken etc .. auf mehrere Stack-Überlauf-Antworten.
Ich fand, dass das Upgrade der settings.gradle-Gradle-Version das Problem behoben hat (es war 2.1.3). Etwas in der Gradle-Toolchain scheint den Klassenpfad 'com.android.tools.build:gradle:2.2.3' zu haben.
quelle
Ersetze das
import android.support.v7.app.AppCompatActivity;
mit import androidx.appcompat.app.AppCompatActivity
quelle
Ich habe die gleiche Situation durchgemacht und die Lösung war ziemlich einfach. Versuchen Sie einfach, die folgende Importanweisung zu entfernen.
import android.support.v7.app.AppCompatActivity;
Sie werden mit dem folgenden Code aufgefordert, Alt + Eingabetaste zu drücken.
import androidx.appcompat.app.AppCompatActivity;
Drücken Sie einfach Alt + Eingabetaste und entfernen Sie die vorherige Importanweisung vollständig.
Grundsätzlich tritt dieses Problem in der neuen Version von Android Studio auf.
quelle
Die beste Lösung ist auf jeden Fall, auf Datei> Caches ungültig machen und neu starten zu gehen
Dann im Dialogmenü ... Klicken Sie auf Caches ungültig machen und neu starten. Warten Sie eine Minute oder wie lange es dauert, um Ihr Projekt zurückzusetzen, dann sollten Sie gut sein.
- -
Ich sollte beachten, dass ich auch auf das Problem gestoßen bin, auf eine Ressourcendatei oder "R" -Datei zu verweisen, die sich in einer compileOnly-Bibliothek befand, die ich in meinem Gradle hatte. (dh compileOnly library> res> referenzierte XML-Datei) Ich habe aufgehört, diese Datei in meinem Java-Code zu referenzieren, und es hat mir geholfen. Seien Sie also müde, wo Sie auf Dateien verweisen.
quelle
Ich hatte diese Einstellungen in
'gradle.properties'
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
Es ist besser, AndroidX-Bibliothek zu verwenden. Also habe ich alle Importe in die AndroidX-Bibliothek geändert und das Projekt kompiliert. Besuch
http://developer.android.com/jetpack/androidx
für Informationen.quelle
androidX Benutzer
Ändern Sie Ihre minSdkVersion auf API-Level 21.
so
minSdkVersion 21
oder baue deine App mitcompileSdkVersion 28
und wechsle auchtargetSdkVersion
zutargetSdkVersion 28
und Sie werden sehen, dass v7 Fehler verschwunden ist. Danach, wenn Sie Probleme beim Erstellen der Symbolleiste oder eines anderen Widgets haben. Drücken Sie Alt + Eingabetaste und erstellen Sie eine Methode dafür.
quelle
Das Problem könnte eine Importreferenz sein.
Versuchen Sie , sie zu ändern. Von:
import android.support.v7.app.AppCompatActivity;
Zu:
import androidx.appcompat.app.AppCompatActivity;
quelle
Löschen Sie den Ordner .idea in Ihrem Projekt, bei dem es sich um einen versteckten Ordner handelt. Gehen Sie zu Ihrem Projekt im System und klicken Sie auf Strg + H. Es wird angezeigt. Löschen Sie es dann. Starten Sie jetzt Ihr Android Studio neu. Ich werde lösen. Es funktioniert für mich.
quelle
Hintergrundinformation:
Meine 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
Erste Lösung: Importieren Sie das Projekt erneut und stimmen Sie nicht zu, das Android Gradle-Plug-In zu aktualisieren.
Zweite Lösung: Ihre Dateien sollten diese Fragmente enthalten .
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 } }
Befolgen Sie entweder die Empfehlung Ihrer IDE, um Ihre Gradle-Version auf 4.4 zu aktualisieren, oder ziehen Sie in Betracht, dies in gradle / wrapper / gradle-wrapper.properties zu haben
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
Optionale Änderung buildToolsVersion in app / build.gradle:
android { compileSdkVersion 25 buildToolsVersion '27.0.3'
app / build.gradle: Kommentieren Sie die Abhängigkeiten aus und lassen Sie den Build fehlschlagen (automatisch oder auslösen)
dependencies { //compile fileTree(dir: 'libs', include: ['*.jar']) //compile 'com.android.support:appcompat-v7:25.1.0' }
app / build.gradle: Kommentar in den Abhängigkeiten erneut. Es wurde empfohlen, sie von der Kompilierung zur Implementierung zu ändern, aber im Moment ist es nur ein Warnproblem.
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.1.0' }
Nach der Neuerstellung des Projekts sollte die Importanweisung nicht mehr ausgegraut sein. Versuchen Sie, Strg + h für die Klasse aufzurufen. Aber aus irgendeinem Grund sind die Fehlermarkierungen in diesen Klassenreferenzierungsanweisungen immer noch vorhanden. Um sie zu entfernen, müssen wir die Projektbaumansicht ausblenden und wiederherstellen oder alternativ das Projekt schließen und erneut öffnen.
Endlich ist es soweit.
Weitere Lesungen:
Gradle aktualisieren
Verwenden Sie die neuen Abhängigkeitskonfigurationen
Wenn Sie einen Bildpfad für meine Lösung bevorzugen, können Sie meinen Blog besuchen
quelle
Datei-> Caches ungültig machen / Neustart funktioniert bei mir.
quelle
Wenn die angegebenen Lösungen nicht funktionieren, erstellen Sie ein neues Projekt mit 'KOTLIN' als Sprache, auch wenn Sie mit Java arbeiten. Ersetzen Sie dann den Hauptordner des neuen Projekts durch den Hauptordner des alten Projekts.
quelle
Für mich hat der folgende Code gut funktioniert:
import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity;
Mit der (XML-Datei):
androidx.constraintlayout.widget.ConstraintLayout xmlns:android="...."
quelle
Ich habe es gerade kommentiert und Androidx verwendet und jetzt funktioniert alles gut!
import androidx.appcompat.app.AppCompatActivity; // import android.support.v7.app.AppCompatActivity;
quelle
Nach dem Ungültigmachen des Cache wechseln Sie von
import android.support.v7.app.AppCompatActivity;
zu
import androidx.appcompat.app.AppCompatActivity;
arbeitete für mich.
quelle
Import einschließen androidx.appcompat.app.AppCompatActivity; in Ihrer MainActivity.java mit anderen Importanweisungen. Das würde so aussehen:
Dies löste mein Problem
quelle