Ich habe Android Studio heute auf 3.1 aktualisiert, und jetzt sagt Android Studio, dass es keine Symbole für die meisten Ressourcen auflösen kann (beispielsweise ThemeOverlay
in styles.xml
oder ?attr/actionBarSize
). Dies scheint mich zwar nicht daran zu hindern, in einem Emulator zu bauen oder zu laufen, aber diese Fehler machen mich nervös.
Hat jemand anderes dieses Problem erlebt? Wie kann ich das Problem lösen? Ich habe versucht, Gradle zu synchronisieren und mein Projekt zu säubern, aber es scheint überhaupt nicht zu helfen.
Irgendwelche Ideen?
Ich verwende Android Studio 3.1 mit Gradle Version 4.4 und Gradle Plugin 3.1.0
BEARBEITEN: .__ Dieses Problem betrifft Aktualisierungen auf Android Studio 3.1.1, 3.1.2, 3.1.3, 3.1.4 sowie Gradle Plugin auf 3.1.1, 3.1.2, 3.1.3 und 3.1.4. Die Antwort unten funktioniert jedoch immer noch.
Schließen Sie das Projekt und importieren Sie es erneut. Hat heute für mich gearbeitet.
Schließen Sie das Projekt und öffnen Sie es als vorhandenes Android Studio-Projekt
Dieser Fehler tritt auf, weil die Unterstützungsbibliothek mit Ihrem Projekt nicht mehr synchron ist. Um es wieder synchron zu erhalten, können Sie die folgenden Schritte ausführen:
Kommentieren Sie die implementation
-Zeilen für die Unterstützungsbibliothek aus. Für mich sieht das so aus:
//implementation 'com.Android.support:appcompat-v7:27.1.1'
//implementation 'com.Android.support:recyclerview-v7:27.1.1'
//implementation 'com.Android.support.constraint:constraint-la
Synchronisieren Sie Ihr Projekt mit Gradle. Sie werden jetzt einige Fehler haben. Mach dir darüber keine Sorgen.
Kommentieren Sie die implementation
-Zeilen, die Sie zuvor auskommentiert haben.
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support:recyclerview-v7:27.1.1'
implementation 'com.Android.support.constraint:constraint-la
Synchronisieren Sie Ihr Projekt erneut mit Gradle.
Der Fehler "Symbol konnte nicht aufgelöst werden" sollte jetzt verschwunden sein. Das hat für mich bei verschiedenen Projekten mehrmals funktioniert.
Hinweis
Das erneute Importieren eines Projekts hat bei mir nicht funktioniert.
Meine Lösung war
.idea
in Ihrem Projekt.File> Close Project
File> New > Import Project
ODER vom Begrüßungsbildschirm Import Project (Gradle, Eclipse ADT, etc.)
.Siehe Screenshot für weitere Informationen
Oder
Ein Projekt zu schließen und dann als bestehendes Projekt zu öffnen, bewirkt Wunder!
Aus irgendeinem Grund werden diese Attribute nicht mehr in den 26 Bibliotheken gefunden. Um diese Bibliotheken zu erweitern, müssen Sie auch Ihre compileSdk
auf 27 ... _ erhöhen
Kurze Version, folgt die App "Graddle"
Android {
compileSdkVersion 27
//...
}
dependencies {
implementation 'com.Android.support:appcompat-v7:27.1.0'
implementation 'com.Android.support:design:27.1.0'
//...
}
Lange Version, überprüfen Sie alle folgenden Dateien:
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip
build.gradle (Projekt)
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Und zum Schluss build.gradle (App)
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 27
defaultConfig {
applicationId "cl.cutiko.testingupdate"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:27.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
implementation 'com.Android.support:design:27.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
}
Ich habe das Projekt als vorhandenes Android Studio-Projekt geschlossen und wieder geöffnet (es wurde nicht importiert), und es hat funktioniert! Danke an den Kommentar von Andrew Glukhoff .
Sie können versuchen, das Projekt zu schließen und Android Studio zu beenden. Starten Sie Android Studio und öffnen Sie das Projekt erneut. Das hat bei mir funktioniert!
Ich habe meine Version auf 4.10.1 aktualisiert und "repariert und reimportiert". Unter .idea befand sich zuvor kein Bibliotheksordner. Und dann hat es funktioniert
Problem # 1
Mein Problem hing damit zusammen, wie ich eine Alpha/Beta-Version von Android Plugin verwendete
File > Project Structure > Project
überprüfe deinen Android Plugin Version
Ich habe etwas benutzt, das 3.3.0-beta
heißt, und doch in einem anderen Projekt 3.1.0-alpha
das Ändern in 3.2.0
scheint mein Problem zu klären. Vergessen Sie nicht, das in build.gradle (Project) zu ändern
Problem # 2
Ich hatte einen Fehler in einer meiner XML-Dateien. Ich habe eine @string
-Ressource vermisst. Bitte überprüfen Sie alle Ihre XML-Dateien und stellen Sie sicher, dass sie alle korrekt sind. Durch das Öffnen einer XML-Datei sollten Android Studio-Fusseln aktiviert werden.
Problem 3
In build.gradle
habe ich verschiedene Versionen der Android-Unterstützungsbibliotheken importiert. z.B.
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:support-v4:27.1.0'
Bitte stellen Sie sicher, dass sie die gleiche Version haben. Stellen Sie außerdem sicher, dass Android Studio nichts in Ihren Abhängigkeiten von gradle
beanstandet. Möglicherweise importierten einige Ihrer Abhängigkeiten auch andere Android-Unterstützungsbibliotheksversionen.
Schritte nach # 1, # 2 und # 3
Bereinigen Sie Ihr Projekt Build > Clean Project
Cache ungültig machen und File > Invalidate Caches / Restart
neu starten
Warten Sie nach dem Neustart, bis Gradle Build abgeschlossen ist, und dann voila!
Ähnliche Fehler für mich, wenn ich auf com.Android.tools.build:gradle 3.3.1
und gradle-4.10.1
aktualisiere
Ich habe die folgende Methode ausprobiert, aber nicht funktioniert:
Clean Project
- Rebuild Project
Invalidate Caches / Restart
.xml
-Fehler überprüfen (Ich habe keine Fehler in XML gefunden).iml
-Datei ändernIch behebe diesen Fehler durch das Ändern voncom.Android.tools.build:gradle 3.2.1
undRestart my mac
.
implementation 'com.Android.support:appcompat-v7:26.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.2'
implementation 'com.Android.support:design:26.1.0'
aktualisieren Sie Ihre Abhängigkeiten mit dem oben genannten in build.gradle (Projekt).
und fügen Sie den folgenden Code in build.gradle (Modul: app) ein
classpath 'com.Android.tools.build:gradle:3.1.1'
classpath 'io.realm:realm-gradle-plugin:3.7.1'
classpath 'com.google.gms:google-services:3.1.0'
Das gleiche Symptom/Fehler wurde für mich durch das Ziehen und Ablegen eines neuen Bildes in den Ordner "drawable-xxhdpi" mit einem Namen verursacht, den Android Studio nicht mochte - beispielsweise mit einer Zahl oder einem Großbuchstaben im Namen.
Es wurde keine nützliche Fehlermeldung angegeben, nur die Meldung "Symbol R kann nicht aufgelöst werden".
Selbst nach dem Synchronisieren der App und des Reinigungs- und Wiederherstellungsprojekts blieb das Problem bestehen, dass "R" nicht erkannt wurde und kein anderer Fehler angezeigt wurde.
Das Schließen und Importieren des Projekts, wie in anderen Antworten vorgeschlagen, hat nicht funktioniert, was angesichts des Grundproblems sinnvoll ist.
Auch wenn es so aussieht, als ob dies in der Vergangenheit für andere nicht funktioniert hat, funktionierte das Beurteilen nach anderen Fragen und Antworten zu SO und das Löschen des neuen Bildes aus dem Zeichenordner.
In ähnlicher Weise und in einer besseren Lösung ist es offensichtlich, das Bild umzubenennen, um alle Zeichen zu entfernen, die Android in Ressourcennamen nicht mag, und dann ein sauberes und/oder neu erstelltes Projekt auszuführen.