Merge "[GH] Fix issue caused by custom classloader." into androidx-master-dev
diff --git a/room/runtime/src/main/java/androidx/room/Room.java b/room/runtime/src/main/java/androidx/room/Room.java
index cadf56c..6a570c4 100644
--- a/room/runtime/src/main/java/androidx/room/Room.java
+++ b/room/runtime/src/main/java/androidx/room/Room.java
@@ -85,9 +85,12 @@
         //noinspection TryWithIdenticalCatches
         try {
 
+            final String fullClassName = fullPackage.isEmpty()
+                    ? implName
+                    : fullPackage + "." + implName;
             @SuppressWarnings("unchecked")
             final Class<T> aClass = (Class<T>) Class.forName(
-                    fullPackage.isEmpty() ? implName : fullPackage + "." + implName);
+                    fullClassName, true, klass.getClassLoader());
             return aClass.newInstance();
         } catch (ClassNotFoundException e) {
             throw new RuntimeException("cannot find implementation for "