Bitte lassen Sie mich wissen, wo ich falsch liege, um den Fehler zu erhalten.
Ich erstelle eine App, deren Aktivität darin besteht, sich nur im Querformat zu befinden. Also habe ich Folgendes in der Datei AndroidManifest.xml hinzugefügt
<activity android:name=".LandScapeImageActivity" android:screenOrientation="landscape"></activity>
Ich habe einen Ordner wie erstellt
/ res / layout-land
und fügen Sie ein Layout mit dem Namen see_today_landscape_layout hinzu.
und in habe onCreate()
ich folgendes hinzugefügt
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.see_today_landscape_layout);
....
}
Aber wenn ich meine App starte, erhalte ich den folgenden Fehler
02-06 13:46:14.358: E/AndroidRuntime(13286): FATAL EXCEPTION: main
02-06 13:46:14.358: E/AndroidRuntime(13286): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mid.kew.activities/com.mid.kew.activities.LandScapeImageActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4066)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.access$2400(ActivityThread.java:135)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.os.Looper.loop(Looper.java:144)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.main(ActivityThread.java:4937)
02-06 13:46:14.358: E/AndroidRuntime(13286): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): at java.lang.reflect.Method.invoke(Method.java:521)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-06 13:46:14.358: E/AndroidRuntime(13286): at dalvik.system.NativeStart.main(Native Method)
02-06 13:46:14.358: E/AndroidRuntime(13286): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f03002b
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.getValue(Resources.java:892)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.content.res.Resources.getLayout(Resources.java:731)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.Activity.setContentView(Activity.java:1654)
02-06 13:46:14.358: E/AndroidRuntime(13286): at com.mid.kew.activities.LandScapeImageActivity.onCreate(LandScapeImageActivity.java:103)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
02-06 13:46:14.358: E/AndroidRuntime(13286): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
02-06 13:46:14.358: E/AndroidRuntime(13286): ... 12 more
Ich habe R.java eingecheckt und es hat die Ressource mit der ID 7f03002b, nach der die Ausnahme sucht und die dort vorhanden ist ...
Ich habe das Projekt beispielsweise fünfmal bereinigt und neu erstellt, aber das Problem tritt immer noch auf.
Seltsamerweise funktionierte das gestern und heute nicht. Der Code ist der gleiche.
see_today_landscape_layout.xml
Datei angeben.compile 'com.android.support:appcompat-v7:23.4.0'
, wenn ich mit dem Aufenthaltv7:22.2.0'
es funktioniertAntworten:
Wenn es wieder passiert, löschen Sie die Datei r.java. es wird automatisch generiert.
quelle
Für meinen Zustand war die Ursache
int
Parameter fürTextView
. Lassen Sie mich ein Beispiel zeigenRuft die obigen Fehlerinformationen ab.
Dies kann durch die Umwandlung festgelegt werden ,
int
umString
diese gerneBeim Schreiben
int
wird eine Ressource erwartet, nicht der Text, den Sie schreiben. Seien Sie also vorsichtig beim Einstellen einesint
alsString
in Android.quelle
Da Sie das Layout explizit festlegen, möchten Sie möglicherweise versuchen, es in den Standardordner / layout zu legen, der sich nicht im / layout-land befindet, da Android die Rotation automatisch für Sie übernehmen soll.
quelle
Versuchen Sie, Ihre Layout-XML von
res/layout-land
in einenres/layout
Ordner zu verschiebenquelle
res/layout-sw600dp
,res/layout
es hat funktioniert. Vielen Dank für IhreDies kann aufgrund einer anderen Sprache im Telefon geschehen, für die Ihr Code nicht über das entsprechende Asset verfügt. Zum Beispiel wird Ihre Einstellungen.xml in xml-en abgelegt und Sie versuchen, Ihre App auf einem Telefon auszuführen, auf dem Französisch ausgewählt ist. Die App stürzt ab.
quelle
Ich habe diesen Fehler aus einem anderen Grund erhalten:
Ich hatte die Datei
res/xml/data.xml
und habe versucht, sie mit einerResources
Klasse wie dieser zu laden :Dies ist jedoch falsch, da die Methode
Resources.getSystem()
ein globales freigegebenes Ressourcenobjekt zurückgibt, das nur Zugriff auf Systemressourcen bietet.Der richtige Weg ist wie folgt (aus der Aktivität heraus):
quelle
In meinem Fall war meine Build Tools-Version in meinem build.gradle für das App-Modul in einem alten Projekt veraltet. Durch das Aktualisieren wurde das Problem behoben:
Auf die neueste Version der Build-Tools (25.0.1) aktualisiert und das Projekt synchronisiert, war alles wieder in Ordnung.
quelle
Überprüfen Sie, ob Ihre Importe korrekt sind. Ich hatte ein ähnliches Problem, bei dem
R
auf die Android-SystemdateiR
verwiesen wurde, nicht auf meine lokale.quelle
Ich habe Ordner
build
in einem Projekt gelöscht . Nach der Reinigung und Neuerstellung in Android Studio. Dann wurden Fehler in build.gradle und AndroidManifest korrigiert.quelle
Dies kann auch zu Problemen führen: Aus Versehen wurde eines meiner Layouts in meinem Tablet-Ressourcenordner geparkt, sodass ich diesen Fehler nur beim Telefonlayout erhalten habe. Das Telefonlayout hatte einfach keine passende Layoutdatei.
Ich habe wieder gearbeitet, nachdem ich die Layoutdatei in den richtigen Standardordner verschoben und ein Projekt neu erstellt hatte.
quelle
Stellen Sie sicher, dass das R, auf das Sie zeigen, das richtige ist. Ich hatte ein ähnliches Problem, bei dem ein Import von Eclipse eingefügt wurde, der eher auf die System R-Datei als auf die Projektdatei zeigte. Es dauerte viel Kopfkratzen. Hoffe das hilft.
quelle
Sie haben die Bildschirmausrichtung in Ihrer XML auf Querformat eingestellt. Wenn Sie Eclipse zum Generieren dieser Datei verwendet haben, wurde sie unter res / layout-land / folder erstellt. Wenn Sie jedoch die Aktivität im Hochformatmodus öffnen, sucht die Anwendung in res / layout-port / folder oder im regulären res / layout / nach XML. . Wenn Sie keine XML-Datei für den Hochformatmodus hatten, stürzt Ihre Anwendung ab.
quelle
Ich habe das folgendermaßen behoben:
Erstellen Sie einen Ordner in Ihrem Ressourcenverzeichnisnamen
"drawable-nodpi"
und verschieben Sie dann alle Ressourcen in diesem Verzeichnis aus einem anderen Zeichenverzeichnis.Bereinigen Sie nun Ihr Projekt und bauen Sie es neu auf. Führen Sie es erneut aus, hoffentlich funktioniert es diesmal ohne Ausnahme, dass keine Ressource gefunden wurde.
quelle
Ich habe diesen Fehler erhalten, als ich versucht habe, mit getInt ("ID") von One Intent auf Bundle-Daten zuzugreifen.
Ich habe es mit getString ("ID") gelöst.
Von Aktivität1 hatte ich
Bei Aktivität B,
quelle
Bei mir hat die Ungültigmachung und der Neustart des Caches nicht funktioniert. Ich habe die Ordner .idea und .gradle entfernt. Wenn Sie das tun, vergessen Sie nicht, dass Dinge wie das Erstellen von Protokollen oder etwas anderes verschwinden könnten.
quelle