From 27fce8c07d93eec39df2440e253f2c0f719b9e19 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Thu, 21 Apr 2016 15:45:13 +0300 Subject: [PATCH] Android: Fix style extract on Android N Task-number: QTBUG-52744 Change-Id: If53a76929f3bc903573917cfd968431532817ace Reviewed-by: Eskil Abrahamsen Blomfeldt (cherry picked from commit 392372392c3c9096984a535a975dda163a62a28a) Reviewed-by: Christian Stromme --- .../jar/src/org/qtproject/qt5/android/ExtractStyle.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java index f5dac1fa60..22e2c7a85b 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java +++ b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java @@ -787,7 +787,14 @@ public class ExtractStyle { private JSONObject findPatchesMarings(Drawable d) throws JSONException, NoSuchFieldException, IllegalAccessException { - NinePatch np = (NinePatch) getAccessibleField(NinePatchDrawable.class, "mNinePatch").get(d); + NinePatch np; + Field f = tryGetAccessibleField(NinePatchDrawable.class, "mNinePatch"); + if (f != null) { + np = (NinePatch) f.get(d); + } else { + Object state = getAccessibleField(NinePatchDrawable.class, "mNinePatchState").get(d); + np = (NinePatch) getAccessibleField(state.getClass(), "mNinePatch").get(state); + } if (Build.VERSION.SDK_INT < 19) return getJsonChunkInfo(extractChunkInfo((byte[]) getAccessibleField(np.getClass(), "mChunk").get(np))); else