Ich habe ein seltsames Problem mit findViewById (id). Es kommt mit einer Ressource zurück, die nicht gefunden wurde, obwohl die Ressource definitiv vorhanden ist. Es ist eine Textansicht in einem Layout neben einer anderen Textansicht. Eine der Textansichten kann ich anhand der ID finden, die andere zeigt die nicht gefundene Ressource an. Gibt es einen Grund, warum dies passieren könnte?
68
Antworten:
Versuchen Sie, Ihr Projekt zu bereinigen, oder geben Sie Code ein.
Manchmal werden die IDs nicht korrekt neu generiert, wenn Sie Eclipse verwenden. Dies erfordert, dass das Projekt bereinigt und manchmal aktualisiert wird.
quelle
Stellen Sie sicher, dass Sie nicht nur versuchen, den Text auf eine Zahl zu setzen, sondern auch erwarten, dass er automatisch in eine Zeichenfolge konvertiert wird.
quelle
TextView
Zielreferenzadresse und generieren so diesen Fehler. Sie MÜSSEN also sicherstellen, dass Sie keine Zahl (oder Ganzzahl) in die TextView-setText()
Methode einfügen .myTextView.setText(myInt + "");
mich selbst benutzt. Aber laut DIESEM scheint esmyTextView.setText(Integer.toString(myInt));
der effizienteste Weg zu sein.Die ausgelöste Ausnahmemeldung ist nicht sehr beschreibend. Es ist sehr wahrscheinlich, dass Sie versuchen, den int- Wert in String umzuwandeln . Durch Anwenden der folgenden Änderung wurde das Problem für mich behoben.
Code vor dem Fix:
Code nach dem Fix:
quelle
Nur um die Antwort von Terra Caines zu klären, da ich gesehen habe, dass es den Menschen viel passiert;
TextView
und andere Textkomponenten haben 2setText()
Funktionen mit 1 Parameter.Einer von ihnen ist mit a
String
und einer mit int. Dasint
ist offensichtlich für eine Zeichenfolge Ressource wieR.string.myString
- was für diejenigen, die nicht wussten,R.exm
immer als dargestellt wirdint
. Die Zeichenfolge dient zum Einfügen einer Zeichenfolge.So möchte ich zum Beispiel int
x = 1;
in eine Textansicht einfügen. DoingmTextView.setText(x);
die Textview wird bewirken , dass die Ressource - Funktion zu verwenden , und da es wahrscheinlich keine Ressource mit der ID 1 ist , wird es die Ausnahme Ressource nicht gefunden werfen. Wenn Sie ein int oder eine beliebige Zahl in die Funktion setText () einfügen möchten, stellen Sie sicher, dass Sie es in konvertierenString
(x+"")
oder(x.toString())
den Trick für Sie erledigen.Hoffe, es hat den Menschen etwas Zeit gespart.
quelle
textViewCount.setText(someArray.size());
war mein Problem.Rufen Sie einfach
toString();
an, um das Problem zu beheben.quelle
resultSizeOnUI.setText(((Integer)productSearchResultSize).toString());
Stellen Sie sicher, dass Sie keine programmgesteuerten Attribute festlegen, die nicht verfügbar sind. Ich hatte das gleiche Problem und der Grund war ein
RemoteView.setFloat(id,"setWeight",1.0f);
zu aLinearLayout
, das mit Android vor 4.x nicht unterstützt wurde. Leider war die Fehlermeldung dabei nicht sehr hilfreich.quelle
In meinem Fall hatte ich eine
int
Variable (zusätzlich zu meiner Aktivitätsklasse ) und ich habe versucht, diese int-Variable als zweiten Parameter anToast.makeText()
( um dies dem Benutzer zu zeigen ) zu übergeben. Ich weiß nicht, ob ich dumm war oder ob es sich um eine Android-Entwicklungsplattform handelt ! : pquelle
Überprüfen Sie, ob die Eigenschaft
android:icon="@mipmap/ic_launcher"
unter dem Anwendungstag Ihrer Manifestdatei vorhanden ist.quelle
In meinem Fall habe ich versucht, einen zeichnbaren Selektor mit dem Element android: color an den Hintergrund der Ansicht zu übergeben. Das Problem hierbei ist, dass Sie die Hintergrundfarbe nicht mit einem Farbwähler definieren können, sondern einen zeichnbaren Selektor benötigen.
quelle