it-swarm.com.de

Android.content.res.Resources abrufen $ NotFoundException: Ausnahme, auch wenn die Ressource in android vorhanden ist

Bitte lassen Sie mich wissen, wo ich falsch liege, um den Fehler zu erhalten.

Ich erstelle eine App, deren Aktivität nur im Querformat sein soll. Also habe ich folgendes in die AndroidManifest.xml Datei eingefü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 onCreate() habe ich folgendes hinzugefügt

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.see_today_landscape_layout);
....
}

Beim Ausführen meiner App wird jedoch die folgende Fehlermeldung angezeigt

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 angekreuzt und es hat die Ressource mit der ID 7f03002b, nach der die Ausnahme sucht und die dort vorhanden ist ...

Ich habe das Projekt zum Beispiel fünfmal gesäubert und neu erstellt, aber das Problem tritt immer noch auf.

Seltsamerweise hat das gestern funktioniert und heute nicht. Der Code ist der gleiche.

77
Nik
  1. wechseln Sie in Eclipse zu Projekt> Bereinigen ...
  2. wählen Sie Ihr Projekt aus und drücken Sie OK
  3. starte die app neu

wenn es wieder vorkommt, löschen Sie die r.Java-Datei. es wird automatisch generiert.

36
prakash

Für meinen Zustand nahm die Ursache den Parameter int für TextView. Lassen Sie mich ein Beispiel zeigen

int i = 5;
myTextView.setText(i);

ruft die obigen Fehlerinformationen ab.

Dies kann behoben werden, indem int in String konvertiert wird

myTextView.setText(String.valueOf(i));

Wenn Sie int schreiben, wird eine Ressource erwartet, nicht der Text, den Sie schreiben. Seien Sie also vorsichtig, wenn Sie in Android ein int als String festlegen.

202
Yekmer Simsek

Da Sie das Layout explizit festlegen, möchten Sie möglicherweise versuchen, es in den Standardordner/layout abzulegen, der sich nicht im Ordner/layout-land befindet, da Sie Android automatisch die Drehung für Sie ausführen möchten .

11
mbwasi

Versuchen Sie, Ihre Layout-XML aus dem Ordner res/layout-land In den Ordner res/layout Zu verschieben

8
Ashish Kumar

In meinem Fall war meine Build Tools-Version in meinem build.gradle für das App-Modul in einem alten Projekt veraltet. Das Update hat das Problem behoben:

Android {
    ...
    buildToolsVersion "19.0.1"
    ...

Aktualisiert auf die neueste Build-Tools-Version (25.0.1) und synchronisiert das Projekt und alles war wieder in Ordnung.

2
Tash Pemhiwa

Stellen Sie sicher, dass Ihre Importe korrekt sind. Ich hatte ein ähnliches Problem, bei dem R auf die Datei Android System R zeigte, nicht auf meine lokale.

2
Ray Benjamin

Ich bin heute auf dasselbe gestoßen. In meinem Fall habe ich einen Ganzzahlwert aus meiner Firebase-Datenbank gelesen und an setText () einer TextView übergeben, ohne ihn in eine Ganzzahl umzuwandeln. Also benutze einfach:

textview.setText(intvalue + "");

oder

textView.setText(String.valueOf(intValue));
2
Danish Ajaib

Dies kann auf eine andere Sprache im Telefon zurückzuführen sein, für die Ihr Code nicht das Asset hat. Beispiel: Ihre preference.xml wird in xml-en abgelegt, und Sie versuchen, Ihre App auf einem Telefon auszuführen, für das Französisch ausgewählt ist. Die App stürzt ab.

2
Arslan Mehboob

Ich habe diesen Fehler aus einem anderen Grund erhalten:

Ich hatte die Datei res/xml/data.xml Und habe versucht, sie mit der Klasse Resources zu laden:

Resources.getSystem().getXml(R.xml.data);

Dies ist jedoch falsch, da die Methode Resources.getSystem() ein globales Shared Resources-Objekt zurückgibt, das nur Zugriff auf Systemressourcen bietet.

Der richtige Weg ist wie folgt (von innen Aktivität):

this.getResources().getXml(R.xml.data);
1
astasiak

Dies kann auch zu Problemen führen: Aus Versehen wurde eines meiner Layouts in meinem Tablet-Ressourcenordner geparkt, sodass dieser Fehler nur bei einem Telefonlayout auftritt. Das Telefonlayout hatte einfach keine passende Layoutdatei.

Ich habe wieder gearbeitet, nachdem ich die Layoutdatei in den richtigen Standardordner verschoben und ein neues Projekt erstellt habe.

1
wolwe

sogar die Antwort wurde akzeptiert, aber ich habe eine andere Antwort. Meistens tritt es auf, wenn Sie einen Text zur Ansicht zuweisen. beispielsweise .

currectText.setText(progress);

aber wenn parameter nicht string ist, gibt es dir

Android.content.res.Resources$NotFoundException: String resource ID 

machen Sie also einen Parameter als String. Verwenden Sie einfach den Operator '+'

currectText.setText(""+progress);

ich übergebe int in der setText-Methode, die gerade in die String-Problemlösung konvertiert wurde

2. Option, wenn es Integer ist

currectText.setText(String.valueOf(progress));
1
android_jain

Ich habe Ordner build in einem Projekt gelöscht. Nach bereinigt und neu aufgebaut in Android Studio. Dann korrigiert Fehler in build.gradle und AndroidManifest.

0
CoolMind

Ich habe diese Fehlermeldung erhalten, als ich versucht habe, mit getInt ("ID") von One Intent auf Bundle-Daten zuzugreifen.

Ich habe es mit getString ("ID") gelöst.

Von Activity1 hatte ich

Intent intent=new Intent(this,ActivityB.class);
intent.putExtra("data",data)// 
startActivity(intent);

Bei Aktivität B

Bundle bundle=getIntent().getExtras();
if(extras!=null){
// int x=extras.getInt("Data"); This Line gave me error int 
x=Integer.parseInt(extras.getString("Data")); // This solved the problem.
}

Eclipse: Projekt> Reinigen

arbeitete für mich. Ich bekomme das oft, wenn ich Layouts von anderen Apps in eine neue App kopiere.

Nervig.

0
Hubert

In Ihrer XML-Datei ist die Bildschirmausrichtung auf Querformat eingestellt. Wenn Sie Eclipse zum Generieren dieser Datei verwendet haben, wurde sie unter res/layout-land/folder erstellt. Wenn Sie jedoch eine Aktivität im Hochformatmodus öffnen, sucht die Anwendung in res/layout-port/folder oder im regulären res/layout/nach XML. . Wenn Sie nicht über XML für den Hochformatmodus verfügen, stürzt Ihre Anwendung ab.

0
Prakash

Stellen Sie sicher, dass das R, auf das Sie zeigen, das richtige ist. Ich hatte ein sehr ähnliches Problem, bei dem von Eclipse ein Import eingefügt wurde, der auf die System R-Datei und nicht auf die Projektdatei zeigte. Es hat viel Kopfkratzen gekostet. Hoffe das hilft.

0
Rben