--- src/mockito/java/com/google/dexmaker/mockito/UnsafeAllocator.java
+++ src/mockito/java/com/google/dexmaker/mockito/UnsafeAllocator.java
@@ -92,6 +92,29 @@ abstract class UnsafeAllocator {
         } catch (Exception ignored) {
         }
 
+        // try dalvikvm, with change https://android-review.googlesource.com/#/c/52331/
+        // public class ObjectStreamClass {
+        //   private static native long getConstructorId(Class<?> c);
+        //   private static native Object newInstance(Class<?> instantiationClass, long methodId);
+        // }
+        try {
+            Method getConstructorId = ObjectStreamClass.class
+                    .getDeclaredMethod("getConstructorId", Class.class);
+            getConstructorId.setAccessible(true);
+            final long constructorId = (Long) getConstructorId.invoke(null, Object.class);
+            final Method newInstance = ObjectStreamClass.class
+                    .getDeclaredMethod("newInstance", Class.class, long.class);
+            newInstance.setAccessible(true);
+            return new UnsafeAllocator() {
+                @Override
+                @SuppressWarnings("unchecked")
+                public <T> T newInstance(Class<T> c) throws Exception {
+                    return (T) newInstance.invoke(null, c, constructorId);
+                }
+            };
+        } catch (Exception ignored) {
+        }
+
         // give up
         return new UnsafeAllocator() {
             @Override
@@ -100,4 +123,4 @@ abstract class UnsafeAllocator {
             }
         };
     }
-}
\ No newline at end of file
+}