Display exceptions thrown during initialisation of static. Previously exceptions would have been silently dropped
diff --git a/robolectric/src/main/java/org/robolectric/Robolectric.java b/robolectric/src/main/java/org/robolectric/Robolectric.java
index d53087c..2f4864e 100644
--- a/robolectric/src/main/java/org/robolectric/Robolectric.java
+++ b/robolectric/src/main/java/org/robolectric/Robolectric.java
@@ -11,7 +11,7 @@
 import java.util.ServiceLoader;
 
 public class Robolectric {
-  private static final ShadowsAdapter shadowsAdapter = instantiateShadowsAdapter();
+  private static ShadowsAdapter shadowsAdapter = null;
   private static Iterable<ShadowProvider> providers;
 
   public static void reset() {
@@ -27,23 +27,36 @@
   }
 
   public static ShadowsAdapter getShadowsAdapter() {
+    synchronized(ShadowsAdapter.class) {
+      if(shadowsAdapter == null) {
+        try {
+          shadowsAdapter = instantiateShadowsAdapter();
+        } catch(Throwable t) {
+          Throwable cause = t;
+          while(cause.getCause() != null) {
+            cause = cause.getCause();
+          }
+          cause.printStackTrace();
+        }
+      }
+    }
     return shadowsAdapter;
   }
 
   public static <T extends Service> ServiceController<T> buildService(Class<T> serviceClass) {
-    return ServiceController.of(shadowsAdapter, serviceClass);
+    return ServiceController.of(getShadowsAdapter(), serviceClass);
   }
 
   public static <T extends Service> T setupService(Class<T> serviceClass) {
-    return ServiceController.of(shadowsAdapter, serviceClass).attach().create().get();
+    return ServiceController.of(getShadowsAdapter(), serviceClass).attach().create().get();
   }
 
   public static <T extends Activity> ActivityController<T> buildActivity(Class<T> activityClass) {
-    return ActivityController.of(shadowsAdapter, activityClass);
+    return ActivityController.of(getShadowsAdapter(), activityClass);
   }
 
   public static <T extends Activity> T setupActivity(Class<T> activityClass) {
-    return ActivityController.of(shadowsAdapter, activityClass).setup().get();
+    return ActivityController.of(getShadowsAdapter(), activityClass).setup().get();
   }
 
   /**