From 61684ea73d525e4a5a104928d9419363d44053e4 Mon Sep 17 00:00:00 2001 From: Sergey Toshin Date: Wed, 27 Jun 2018 19:55:24 +0300 Subject: [PATCH] Prevent adding duplicate ids for resource entries with different entry configs --- .../main/java/jadx/core/xmlgen/ResTableParser.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java index 89f630f20..c24f2a08a 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/ResTableParser.java @@ -3,7 +3,9 @@ package jadx.core.xmlgen; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,10 +91,13 @@ public class ResTableParser extends CommonBinaryParser { writer.startLine(""); writer.incIndent(); + Set addedValues = new HashSet<>(); for (ResourceEntry ri : resStorage.getResources()) { - String format = String.format("", - ri.getTypeName(), ri.getKeyName(), ri.getId()); - writer.startLine(format); + if(addedValues.add(ri.getTypeName() + "." + ri.getKeyName())) { + String format = String.format("", + ri.getTypeName(), ri.getKeyName(), ri.getId()); + writer.startLine(format); + } } writer.decIndent(); writer.startLine("");