diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index 3f1bdb4..f85f8d5 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -184,7 +184,9 @@
     this.printer = printer;
     this.codeRewriter = new CodeRewriter(appView);
     this.assertionErrorTwoArgsConstructorRewriter =
-        new AssertionErrorTwoArgsConstructorRewriter(appView);
+        appView.options().desugarState.isOn()
+            ? new AssertionErrorTwoArgsConstructorRewriter(appView)
+            : null;
     this.classInitializerDefaultsOptimization =
         new ClassInitializerDefaultsOptimization(appView, this);
     this.stringOptimizer = new StringOptimizer(appView);
@@ -1341,9 +1343,11 @@
     timing.begin("Natural Int Loop Remover");
     naturalIntLoopRemover.run(appView, code);
     timing.end();
-    timing.begin("Rewrite AssertionError");
-    assertionErrorTwoArgsConstructorRewriter.rewrite(code, methodProcessingContext);
-    timing.end();
+    if (assertionErrorTwoArgsConstructorRewriter != null) {
+      timing.begin("Rewrite AssertionError");
+      assertionErrorTwoArgsConstructorRewriter.rewrite(code, methodProcessingContext);
+      timing.end();
+    }
     timing.begin("Run CSE");
     codeRewriter.commonSubexpressionElimination(code);
     timing.end();
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java b/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java
index 14c8ffd..2fa9d11 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertionerror/AssertionErrorRewriteTest.java
@@ -59,12 +59,11 @@
         .inspect(
             inspector ->
                 assertTrue(
-                    parameters.getApiLevel().isLessThan(AndroidApiLevel.K)
-                        || inspector.allClasses().stream()
-                            .noneMatch(
-                                clazz ->
-                                    SyntheticItemsTestUtils.isExternalSynthetic(
-                                        clazz.getFinalReference()))))
+                    inspector.allClasses().stream()
+                        .noneMatch(
+                            clazz ->
+                                SyntheticItemsTestUtils.isExternalSynthetic(
+                                    clazz.getFinalReference()))))
         .run(parameters.getRuntime(), Main.class)
         // None of the VMs we have for testing is missing the two args constructor.
         .assertSuccessWithOutputLines("message", "java.lang.RuntimeException: cause message");
