Robolectric sagt "AndroidManifest.xml nicht gefunden"

Während Sie versuchen, um Robolectric RC3 arbeiten in Android-Studio, bekomme ich

Caused by: java.lang.RuntimeException: build/intermediates/bundles/debug/AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
at org.robolectric.manifest.AndroidManifest.validate(AndroidManifest.java:120)
at org.robolectric.manifest.AndroidManifest.getResourcePath(AndroidManifest.java:469)
at org.robolectric.manifest.AndroidManifest.getIncludedResourcePaths(AndroidManifest.java:475)
at org.robolectric.RobolectricTestRunner.createAppResourceLoader(RobolectricTestRunner.java:479)
at org.robolectric.RobolectricTestRunner.getAppResourceLoader(RobolectricTestRunner.java:471)
at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:73)
at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:421)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:234)

Versuchte ich

@Config(manifest = "app/src/main/AndroidManifest.xml", constants = BuildConfig.class, sdk=21)

und ich habe versucht, das manifest Lage in meinem TestRunner, nichts funktionierte. In der Datei system sehe ich, dass das manifest ist in

./app/build/intermediates/manifests/full/debug/AndroidManifest.xml

nicht in der Lage Robolectric ist auf der Suche nach es.
An einer Stelle der manifest hab einfach ignoriert, dann ist ein ähnliches Problem aufgetreten ist, für Ressourcen, die app oder Robolectric nicht finden konnte, einen Rohstoff meiner app verwendet.
Dies ist in meinem build-Datei:

   sourceSets {
    main {
        java.srcDirs = ['src/main/java']
        resources.srcDirs = ['src/main/res']
    }
    test {
        java.srcDirs = ['src/test/java', 'src/main/java']
        resources.srcDirs = ['src/test/res', 'src/main/res']
    }
}

Wie kann ich sagen, Robolectric, wo ein manifest, und noch wichtiger, wo Sie, nach Ressourcen zu suchen?

Bearbeiten:
Ich habe ausgecheckt Robolectric von github, ich habe es gebaut, installiert es in meinem lokalen .m2 repo, die gradle-Datei bezieht sich jetzt auf die lokale SNAPSHOT-build, und ich sorgte dafür, dass Gradle nicht eine neue version von einem remote-repo. Dann kopierte ich die RobolectricGradleTestRunner zu meinem Projekt, habe ich geändert, die Linien, bei denen die Speicherorte definiert sind: es hat nicht enthalten den Namen des Moduls. Jetzt funktioniert es.

InformationsquelleAutor der Frage Christine | 2015-06-18

Schreibe einen Kommentar