Wenn ich versuche, auf eine rohe Ressource zuzugreifen, erhalte ich einen Fehler android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f060000
.
Die Ressource ist ein .bks-Zertifikat, das für die Servervalidierung verwendet wird. Es wird im Ordner res/raw
gespeichert.
Die peinlichste Sache ist, dass, wenn ich das Zertifikat (und die Validierungsarchitektur) in ein neues Projekt kopiert habe (das ich nur zum Testen erstellt habe), hat es funktioniert!
Ich benutze nenicks Custom Runner , damit Robolectric die Ordner für Manifest, Res und Assets korrekt finden kann. Wenn ich in den Ordner intermediates / res / debug gehe, sind alle Ressourcen da. Ich habe keine Aromen im Projekt (das Projekt hatte, ich habe sie entfernt. Vielleicht ist das das Problem?)
Ich verwende com.android.tools.build:gradle:1.2.2
. %Code%.
Ich habe viele Abhängigkeiten vom Projekt: (
Außerdem verwende ich buildToolsVersion '22.0.1'
und testCompile 'org.robolectric:robolectric:3.0-rc2'
Der Stacktrace:
Entschuldigung für das "xxx" auf den Paket- / Klassennamen, aber ich besitze den Code nicht.
Bearbeiten Sie 1, um den Code hinzuzufügen
Der Code, der am testCompile 'org.robolectric:shadows-support-v4:3.0-rc2'
der Anwendung ausgeführt wird, ist:
onCreate
Die Variable InputStream is = resources.openRawResource(keystoreId);
ist ein keystoreId
.
Weiß jemand, was das verursachen könnte?
Bearbeiten Sie 2, um weitere Informationen bereitzustellen
Eine zusätzliche Information: Ich habe eine andere Anwendung ID auf dem Build.gradle des Moduls und auf dem AndroidManifest. Selbst wenn ich das Projekt änderte, um sie gleich zu machen, funktionierten die Dinge nicht und der Fehler existierte noch: (
Bearbeiten 3: Android Studio-Update
Mit dem letzten Android Studio-Update wurde der Test gestartet, um die Ressourcen zu finden! Außer für die im rohen Ordner :(
Ich löse es, indem ich einen großen hässlichen R.raw.keystore
in meinen Code setze, aber da dies keine Lösung für meine Frage ist, schließe ich sie nicht ...
Ich hoffe, Nenick wird diese Antwort korrigieren, wenn sie falsch ist. Aber du brauchst deinen Custom Runner nicht mit deinem Setup. Sie können stattdessen RobolectricGradleTestRunner
verwenden.
Tags und Links android robolectric android-resources