diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java index ecac54bf..d9b3808b 100755 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java @@ -35,12 +35,13 @@ public class ResResSpec { this.mId = id; String cleanName; - try { - ResResSpec resResSpec = type.getResSpec(name); + ResResSpec resResSpec = type.getResSpecUnsafe(name); + if (resResSpec != null) { cleanName = name + "_APKTOOL_DUPLICATENAME_" + id.toString(); - } catch (AndrolibException ex) { + } else { cleanName = (name.isEmpty() ? ("APKTOOL_DUMMYVAL_" + id.toString()) : name); } + this.mName = cleanName; this.mPackage = pkg; this.mType = type; diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResTypeSpec.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResTypeSpec.java index b486b0b6..40022323 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResTypeSpec.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResTypeSpec.java @@ -62,13 +62,17 @@ public final class ResTypeSpec { } public ResResSpec getResSpec(String name) throws AndrolibException { - ResResSpec spec = mResSpecs.get(name); + ResResSpec spec = getResSpecUnsafe(name); if (spec == null) { throw new UndefinedResObject(String.format("resource spec: %s/%s", getName(), name)); } return spec; } + public ResResSpec getResSpecUnsafe(String name) { + return mResSpecs.get(name); + } + public void removeResSpec(ResResSpec spec) throws AndrolibException { mResSpecs.remove(spec.getName()); }