Port the "abstract methods are not implementations" fix to art.

Bug: https://code.google.com/p/android/issues/detail?id=42991
Change-Id: I08e46361a9d7275bc870ee1ec38c40ae22ddf08a
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 0e26791..56c37fd 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -3300,7 +3300,7 @@
           mirror::AbstractMethod* vtable_method = vtable->Get(k);
           vtable_mh.ChangeMethod(vtable_method);
           if (interface_mh.HasSameNameAndSignature(&vtable_mh)) {
-            if (!vtable_method->IsPublic()) {
+            if (!vtable_method->IsAbstract() && !vtable_method->IsPublic()) {
               self->ThrowNewExceptionF("Ljava/lang/IllegalAccessError;",
                                        "Implementation not public: %s",
                                        PrettyMethod(vtable_method).c_str());