From 6a2a1f8f6433dff30f69d9fcbb5cc925b4ce0d70 Mon Sep 17 00:00:00 2001 From: okaymak-esites Date: Mon, 19 Oct 2015 16:31:44 +0200 Subject: [PATCH] Fix error on Marshmallow Fix error when entity class is package private. See also https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-runtime --- library/src/main/java/com/orm/SugarRecord.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/orm/SugarRecord.java b/library/src/main/java/com/orm/SugarRecord.java index 0f76b766..91c78134 100644 --- a/library/src/main/java/com/orm/SugarRecord.java +++ b/library/src/main/java/com/orm/SugarRecord.java @@ -14,6 +14,7 @@ import com.orm.util.QueryBuilder; import java.lang.String; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; @@ -167,7 +168,9 @@ public static List findWithQuery(Class type, String query, String... a try { while (c.moveToNext()) { - entity = type.getDeclaredConstructor().newInstance(); + Constructor constructor = type.getDeclaredConstructor(); + constructor.setAccessible(true); + entity = constructor.newInstance(); inflate(c, entity, getSugarContext().getEntitiesMap()); toRet.add(entity); } @@ -193,7 +196,9 @@ public static List find(Class type, String whereClause, String[] where groupBy, null, orderBy, limit); try { while (c.moveToNext()) { - entity = type.getDeclaredConstructor().newInstance(); + Constructor constructor = type.getDeclaredConstructor(); + constructor.setAccessible(true); + entity = constructor.newInstance(); inflate(c, entity, getSugarContext().getEntitiesMap()); toRet.add(entity); } @@ -399,7 +404,9 @@ public E next() { } try { - entity = type.getDeclaredConstructor().newInstance(); + Constructor constructor = type.getDeclaredConstructor(); + constructor.setAccessible(true); + entity = constructor.newInstance(); inflate(cursor, entity, getSugarContext().getEntitiesMap()); } catch (Exception e) { e.printStackTrace();