Android: android.content.res.Resources $ NotFoundException: String Ressource ID # 0x5

Ich bekomme die Ausnahme vom Titel, wenn ich meine App laufe. Was es tut ist es hat eine. Txt-Datei mit Worten für ein Hangman-Spiel und ich denke, die Ausnahme wird beim Zugriff auf die Datei geworfen. Meine Datei, cuvinte.txt befindet sich in / assets /. Hier ist mein Code (ich habe das Layout / xml Teil übersprungen, was gut funktioniert):

public void onCreate() { // all the onCreate() stuff, then this: try { AssetManager am = this.getAssets(); InputStream is = am.open("cuvinte.txt"); InputStreamReader inputStreamReader = new InputStreamReader(is); BufferedReader b = new BufferedReader(inputStreamReader); String rand; while((rand=b.readLine())!=null){ cuvinte.add(rand); } } catch (IOException e) { Toast.makeText(this, "No words file", Toast.LENGTH_LONG).show(); e.printStackTrace(); } newGame(newG); } public void newGame(View view){ Random rand = new Random(); String stringCuvant = cuvinte.get(rand.nextInt(cuvinte.size())); cuvant.setText(""); System.out.println(stringCuvant); for(int i = 0; i< stringCuvant.length(); i++){ cuvant.append("_ "); } incercari.setText(valIncercari); } 

Die Funktion newGame () wird sowohl beim Betätigen der neuen Spieltaste als auch zu Beginn der Aktivität in der Funktion onCreate () aufgerufen.

  • Gridview-Klick funktioniert nicht in der Custom Listview
  • IPv6 Socket auf Android
  • Lollipop: Deaktivierter Button -> welcher Stil?
  • Implementieren Sie ein Timeout in BluetoothSocket inputstream.read () in Android
  • Halten Sie TextInputLayout immer fokussiert oder halten Sie das Label immer erweitert
  • Keine Ressource gefunden, die den Vornamen 'android: Theme.Holo.Light'
  • Android Eclipse Popup Nachricht mit Button
  • Holen Sie die Dimension aus XML und legen Sie die Textgröße zur Laufzeit fest
  • Rückkehr zum Startbildschirm aus der Aktivität
  • Deaktivieren Sie Logcat (DDMS) & Run Console, die sich automatisch bei jeder Aktivität öffnet
  • Android-Dialer-Anwendung
  • Picasso Singleton Verwendung
  • 4 Solutions collect form web for “Android: android.content.res.Resources $ NotFoundException: String Ressource ID # 0x5”

    (Nur Annahme, weniger Info von Exception stacktrace)

    Ich denke, diese Zeile, incercari.setText(valIncercari); Wirft Ausnahme, weil valIncercari int

    So sollte es sein,

     incercari.setText(valIncercari+""); 

    Oder

     incercari.setText(Integer.toString(valIncercari)); 

    Ich wollte nur noch einen anderen Grund darauf hinweisen, dass dieser Fehler ausgelöst werden kann, wenn du eine String-Ressource für eine Übersetzung deiner App definiert hast, aber keine Standard-String-Ressource zur Verfügung stellte.

    Beispiel für die Ausgabe:

    Wie Sie unten sehen können, hatte ich eine String-Ressource für einen spanischen String "get_started". Es kann immer noch in Code referenziert werden, aber wenn das Telefon nicht in Spanisch ist, wird es keine Ressource zum Laden und Absturz beim Aufruf von getString() .

    Values-es / strings.xml

     <string name="get_started">SIGUIENTE</string> 

    Verweis auf Ressource

     textView.setText(getString(R.string.get_started) 

    Logcat:

     06-11 11:46:37.835 7007-7007/? E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.app.test PID: 7007 android.content.res.Resources$NotFoundException: String resource ID #0x7f0700fd at android.content.res.Resources.getText(Resources.java:299) at android.content.res.Resources.getString(Resources.java:385) at com.juvomobileinc.tigousa.ui.signin.SignInFragment$4.onClick(SignInFragment.java:188) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

    Lösung für die Ausgabe

    Verhindern, dass dies ganz einfach ist, nur stellen Sie sicher, dass Sie immer eine Standard-String-Ressource in values/strings.xml so dass, wenn das Telefon in einer anderen Sprache ist, wird es immer eine Ressource zu fallen zurück zu.

    Werte / Strings.xml

     <string name="get_started">Get Started</string> 

    Values-en / strings.xml

     <string name="get_started">Get Started</string> 

    Values-es / strings.xml

     <string name="get_started">Siguiente</string> 

    Values-de / strings.xml

     <string name="get_started">Ioslegen</string> 

    Ein weiteres Szenario, das diese Ausnahme verursachen kann, ist mit DataBinding, das ist, wenn Sie so etwas in Ihrem Layout verwenden

     <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="model" type="point.to.your.model"/> </data> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="@{model.someIntegerVariable}"/> </layout> 

    Beachten Sie, dass die Variable, die ich verwende, eine Integer ist und ich sie dem Textfeld der TextView zuordne. Da die TextView bereits eine Methode mit der Signatur von setText(int) hat, wird sie diese Methode verwenden, anstatt den setText(String) und den Wert zu setText(String) . So denkt TextView Ihre Eingabesummer als Ressource-Wert, der offensichtlich nicht gültig ist.

    Lösung ist, Ihre int Wert zu zeichnen wie folgt zu werfen

     android:text="@{String.valueOf(model.someIntegerVariable)}" 

    Manchmal müssen Sie auch in Werte / Strings.xml einfügen

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.