Robolectric wirft Resources $ NotFoundException beim Versuch, auf die Ressource im Raw-Ordner zuzugreifen

9

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:

%Vor%

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 ...

    
jademcosta 05.05.2015, 21:24
quelle

1 Antwort

2

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.

    
Eugen Martynov 07.05.2015 04:47
quelle