Ich arbeitete an meiner App und alles war normal, bis ich versuchte, ein Bild in Java anzuzeigen.
Ich habe die App einmal ausgeführt und sie lief normal, das Bild wurde angezeigt ..__ Danach wurde ich aufgefordert, einige Bibliotheken zu importieren und ich importierte sie. Danach bekam ich Fehler für meine Aktivitäten.
Fehler wie:
Gradle: error: cannot find symbol variable activity_main
Gradle: error: cannot find symbol variable button1
Gradle: error: cannot find symbol variable button2
Gradle: error: cannot find symbol variable textView
Gradle: error: cannot find symbol variable secondActivity
In MainActivity habe ich folgende Bibliotheken importiert:
import Android.R;
import Android.content.Intent;
import Android.os.Bundle;
import Android.app.Activity;
import Android.view.Menu;
import Android.widget.Button;
und in secondActivity diese:
import Android.R;
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.widget.Button;
Weiß jemand, wie man das beheben kann?
BEARBEITEN: Ich habe import Android.R;
gelöscht und funktioniert jetzt normal.
Sie sollten Android.R
nicht importieren. Das sollte automatisch generiert und erkannt werden. Diese Frage enthält viele hilfreiche Tipps, wenn nach dem Entfernen des Imports ein Fehler bezüglich R
auftritt.
Einige grundlegende Schritte nach dem Entfernen des Imports, wenn diese Fehler auftreten:
[a-z0-9.]
bestehen. Großbuchstaben oder Symbole sind aus irgendeinem Grund nicht zulässig.Wenn Siemehrere Geschmacksrichtungenverwenden?
-Stellen Sie sicher, dass die Ressourcendatei nicht nur in einer der Varianten und in main deklariert/hinzugefügt wird.
Beispiel: a_layout_file.xml
-Datei, die die Symbolvariablen enthält
src:
flavor1/res/layout/(keine Datei)
flavor2 / res/layout/a_layout_file.xml
main / res/layout/a_layout_file.xml
Bei diesem Setup wird der Fehler ausgegeben: Symbolvariable kann nicht gefunden werden. Dies liegt daran, dass die Ressourcendatei nur in beiden Varianten oder nur im Hauptverzeichnis vorliegen kann.
Wenn Sie in Ihrem Projekt ein String
build config-Feld verwenden, kann dies der Fall sein:
buildConfigField "String", "source", "play"
Wenn Sie Ihren String wie oben deklarieren, wird der Fehler auftreten. Das Update ist zu ändern:
buildConfigField "String", "source", "\"play\""
stellen Sie sicher, dass das importierte R nicht von einem anderen Modul stammt. Ich hatte eine Klasse von einem Modul in das Hauptprojekt verschoben und das R war das Modul aus dem Modul.
Öffne das Projekt in Android Studio und klicke auf Caches ungültig machen/neu starten
Stellen Sie sicher, dass Sie MainActivity
und .ScanActivity
in Ihrer AndroidManifest.xml
-Datei haben:
<activity Android:name=".MainActivity">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name=".ScanActivity">
</activity>
Stellen Sie sicher, dass sich Ihre Variablen im Gültigkeitsbereich der Methode befinden, auf die sie verweist. Zum Beispiel hatte ich eine Textansicht lokal in einer Methode in der Klasse definiert und referenzierte sie in einer anderen Methode.
Ich habe die Textview-Definition außerhalb der Methode direkt unter die Klassendefinition verschoben, sodass die andere Methode auf die Definition zugreifen konnte, wodurch das Problem behoben wurde.
Eine weitere Alternative zu @ TouchBoarders Antwort ist, dass Sie möglicherweise auch zwei Layout-Dateien mit demselben Namen, aber für verschiedene API-Versionen haben. Sie sollten die ältere Datei my_file.xml löschen
my_file.xml
my_file.xml(v21)