diff --git a/jadx-core/src/main/java/jadx/core/xmlgen/BinaryXMLParser.java b/jadx-core/src/main/java/jadx/core/xmlgen/BinaryXMLParser.java index dd349df92..703809292 100644 --- a/jadx-core/src/main/java/jadx/core/xmlgen/BinaryXMLParser.java +++ b/jadx-core/src/main/java/jadx/core/xmlgen/BinaryXMLParser.java @@ -309,10 +309,23 @@ public class BinaryXMLParser extends CommonBinaryParser { } String attrName = nsMap.get(attrUrl); if (attrName == null) { - return "NOT_FOUND_NS_0x" + Integer.toHexString(attributeNS) + "_" + attrUrl; + attrName = generateNameForNS(attrUrl); } return attrName; } + + private String generateNameForNS(String attrUrl) { + for(int i = 1; ; i++) { + String attrName = "ns" + i; + if(!nsMap.containsValue(attrName)) { + // do not add generated value to nsMap + // because attrUrl might be used in a neighbor element, but never defined + writer.add("xmlns:").add(attrName) + .add("=\"").add(attrUrl).add("\""); + return attrName; + } + } + } private String getAttributeName(int id) { String str = getString(id);