Fix abstract method

Change-Id: Iaac8c33c543dff310d21df89e00a48e7c649593b
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/numberunboxer/NumberUnboxerImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/numberunboxer/NumberUnboxerImpl.java
index 29fd7d5..2b30686 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/numberunboxer/NumberUnboxerImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/numberunboxer/NumberUnboxerImpl.java
@@ -110,7 +110,8 @@
     Map<DexMethod, DexMethod> vMethodRepresentative = new IdentityHashMap<>();
     for (List<ProgramMethod> vMethods : componentVirtualMethods.values()) {
       if (vMethods.size() > 1) {
-        if (Iterables.all(vMethods, this::shouldConsiderForUnboxing)) {
+        if (Iterables.all(vMethods, this::shouldConsiderForUnboxing)
+            && Iterables.any(vMethods, m -> !m.getDefinition().isAbstract())) {
           vMethods.sort(Comparator.comparing(DexClassAndMember::getReference));
           ProgramMethod representative = vMethods.get(0);
           for (int i = 1; i < vMethods.size(); i++) {
@@ -122,7 +123,7 @@
       } else {
         assert vMethods.size() == 1;
         ProgramMethod candidate = vMethods.get(0);
-        if (shouldConsiderForUnboxing(candidate)) {
+        if (shouldConsiderForUnboxing(candidate) && !candidate.getDefinition().isAbstract()) {
           candidateBoxingStatus.put(candidate.getReference(), UNPROCESSED_CANDIDATE);
         }
       }