Merge branch 'crpalmer-ignore-duplicate-res'

This commit is contained in:
Connor Tumbleson 2016-02-16 08:25:12 -05:00
commit 1ff3a375d4
2 changed files with 13 additions and 3 deletions

View File

@ -72,6 +72,7 @@ public class ApkDecoder {
public void decode() throws AndrolibException, IOException, DirectoryException {
File outDir = getOutDir();
AndrolibResources.sKeepBroken = mKeepBrokenResources;
if (!mForceDelete && outDir.exists()) {
throw new OutDirExistsException();
@ -239,7 +240,6 @@ public class ApkDecoder {
throw new AndrolibException(
"Apk doesn't contain either AndroidManifest.xml file or resources.arsc file");
}
AndrolibResources.sKeepBroken = mKeepBrokenResources;
mResTable = mAndrolib.getResTable(mApkFile, hasResources);
}
return mResTable;

View File

@ -249,8 +249,18 @@ public class ARSCDecoder {
}
ResResource res = new ResResource(mType, spec, value);
mType.addResource(res);
spec.addResource(res);
try {
mType.addResource(res);
spec.addResource(res);
} catch (AndrolibException ex) {
if (mKeepBroken) {
mType.addResource(res, true);
spec.addResource(res, true);
LOGGER.warning(String.format("Duplicate Resource Detected. Ignoring duplicate: %s", res.toString()));
} else {
throw ex;
}
}
mPkg.addResource(res);
}