When @Config(manifest = NONE, packageName = "whatever"), R class should be `whatever.R`.
diff --git a/robolectric-resources/src/main/java/org/robolectric/manifest/AndroidManifest.java b/robolectric-resources/src/main/java/org/robolectric/manifest/AndroidManifest.java
index b865d3a..748a482 100644
--- a/robolectric-resources/src/main/java/org/robolectric/manifest/AndroidManifest.java
+++ b/robolectric-resources/src/main/java/org/robolectric/manifest/AndroidManifest.java
@@ -124,11 +124,11 @@
   }
 
   void parseAndroidManifest() {
-    if (androidManifestFile == null || manifestIsParsed) {
+    if (manifestIsParsed) {
       return;
     }
 
-    if (androidManifestFile.exists()) {
+    if (androidManifestFile != null && androidManifestFile.exists()) {
       try {
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 
@@ -167,7 +167,11 @@
         ignored.printStackTrace();
       }
     } else {
-      System.err.println("No such manifest file: " + androidManifestFile);
+      rClassName = (packageName != null && !packageName.equals("")) ? packageName + ".R" : null;
+
+      if (androidManifestFile != null) {
+        System.err.println("No such manifest file: " + androidManifestFile);
+      }
     }
 
     manifestIsParsed = true;
diff --git a/robolectric/src/test/java/org/robolectric/manifest/AndroidManifestTest.java b/robolectric/src/test/java/org/robolectric/manifest/AndroidManifestTest.java
index 4dd288e..3273bf3 100644
--- a/robolectric/src/test/java/org/robolectric/manifest/AndroidManifestTest.java
+++ b/robolectric/src/test/java/org/robolectric/manifest/AndroidManifestTest.java
@@ -242,6 +242,20 @@
   }
 
   @Test
+  public void whenNullManifestFile_getRClass_shouldComeFromPackageName() throws Exception {
+    AndroidManifest appManifest = new AndroidManifest(null, resourceFile("res"), resourceFile("assets"), "org.robolectric.lib1");
+    assertThat(appManifest.getRClass()).isEqualTo(org.robolectric.lib1.R.class);
+    assertThat(appManifest.getPackageName()).isEqualTo("org.robolectric.lib1");
+  }
+
+  @Test
+  public void whenMissingManifestFile_getRClass_shouldComeFromPackageName() throws Exception {
+    AndroidManifest appManifest = new AndroidManifest(resourceFile("none.xml"), resourceFile("res"), resourceFile("assets"), "org.robolectric.lib1");
+    assertThat(appManifest.getRClass()).isEqualTo(org.robolectric.lib1.R.class);
+    assertThat(appManifest.getPackageName()).isEqualTo("org.robolectric.lib1");
+  }
+
+  @Test
   public void shouldRead1IntentFilter() {
     AndroidManifest appManifest = newConfig("TestAndroidManifestForActivitiesWithIntentFilter.xml");
     appManifest.getMinSdkVersion(); // Force parsing