Disable enum unboxing in compilation-steps

Change-Id: Ieafc3ddd9b1a89d6aa2b78cab6ecfdb67f4ee11f
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 9a0e76a..555b71f 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -285,7 +285,13 @@
       InterfaceMethodRewriter.checkForAssumedLibraryTypes(appView.appInfo(), options);
       BackportedMethodRewriter.registerAssumedLibraryTypes(options);
       if (options.enableEnumUnboxing) {
-        EnumUnboxingCfMethods.registerSynthesizedCodeReferences(options.itemFactory);
+        if (application.definitionFor(options.itemFactory.enumUnboxingUtilityType) != null) {
+          // The enum unboxing utility class can be created only during cf to dex compilation.
+          // If this is true, we are recompiling the dex application with R8 (compilation-steps).
+          options.enableEnumUnboxing = false;
+        } else {
+          EnumUnboxingCfMethods.registerSynthesizedCodeReferences(options.itemFactory);
+        }
       }
 
       List<ProguardConfigurationRule> synthesizedProguardRules = new ArrayList<>();