diff --git a/sandbox/src/main/java/org/robolectric/internal/bytecode/ClassInstrumentor.java b/sandbox/src/main/java/org/robolectric/internal/bytecode/ClassInstrumentor.java index 1350abff63c..99fc3dba859 100644 --- a/sandbox/src/main/java/org/robolectric/internal/bytecode/ClassInstrumentor.java +++ b/sandbox/src/main/java/org/robolectric/internal/bytecode/ClassInstrumentor.java @@ -143,18 +143,6 @@ private void recordPackageStats(PerfStatsCollector perfStats, MutableClass mutab public void instrument(MutableClass mutableClass) { try { - makeClassPublic(mutableClass.classNode); - if ((mutableClass.classNode.access & Opcodes.ACC_FINAL) == Opcodes.ACC_FINAL) { - mutableClass - .classNode - .visitAnnotation("Lcom/google/errorprone/annotations/DoNotMock;", true) - .visit( - "value", - "This class is final. Consider using the real thing, or " - + "adding/enhancing a Robolectric shadow for it."); - } - mutableClass.classNode.access = mutableClass.classNode.access & ~Opcodes.ACC_FINAL; - // Need Java version >=7 to allow invokedynamic mutableClass.classNode.version = Math.max(mutableClass.classNode.version, Opcodes.V1_7); @@ -163,6 +151,18 @@ public void instrument(MutableClass mutableClass) { if (mutableClass.isInterface()) { mutableClass.addInterface(Type.getInternalName(InstrumentedInterface.class)); } else { + makeClassPublic(mutableClass.classNode); + if ((mutableClass.classNode.access & Opcodes.ACC_FINAL) == Opcodes.ACC_FINAL) { + mutableClass + .classNode + .visitAnnotation("Lcom/google/errorprone/annotations/DoNotMock;", true) + .visit( + "value", + "This class is final. Consider using the real thing, or " + + "adding/enhancing a Robolectric shadow for it."); + } + mutableClass.classNode.access = mutableClass.classNode.access & ~Opcodes.ACC_FINAL; + // If there is no constructor, adds one addNoArgsConstructor(mutableClass);