From a4a8b05ef089d605d6a535e4218cf02900dcebc2 Mon Sep 17 00:00:00 2001 From: tRuNKator <34552981+tRuNKator@users.noreply.github.com> Date: Thu, 14 Mar 2019 17:46:37 +0500 Subject: [PATCH] fix: replace dot character with underscore in style resource name (PR #466) --- .../jadx/core/utils/android/AndroidResourcesUtils.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java b/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java index 3faf6eaf1..3efb5125a 100644 --- a/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java +++ b/jadx-core/src/main/java/jadx/core/utils/android/AndroidResourcesUtils.java @@ -99,11 +99,17 @@ public class AndroidResourcesUtils { } } for (ResourceEntry resource : resStorage.getResources()) { + final String resTypeName = resource.getTypeName(); ClassNode typeCls = innerClsMap.computeIfAbsent( - resource.getTypeName(), + resTypeName, name -> addClassForResType(resCls, rClsExists, name) ); - String resName = resource.getKeyName(); + final String resName; + if ("style".equals(resTypeName)) { + resName = resource.getKeyName().replace('.', '_'); + } else { + resName = resource.getKeyName(); + } FieldNode rField = typeCls.searchFieldByName(resName); if (rField == null) { FieldInfo rFieldInfo = FieldInfo.from(typeCls.dex(), typeCls.getClassInfo(), resName, ArgType.INT);