Add better error message for AAPT file conflicts

Some resource directories may be the same even though
their names are different. For instance, the
"smallest width" qualifier was added in API 13,
so the resource directory "values-sw600dp" and
"values-sw600dp-v13" are the same and cause
a conflict. The error reports that this might be the
case.

Change-Id: Ia35f1d670edd48265b3a7fe3d55656128421f612
This commit is contained in:
Adam Lesinski
2014-05-12 22:13:02 -07:00
parent 759f780af0
commit 48f05d29f3

View File

@@ -561,15 +561,17 @@ status_t AaptGroup::addFile(const sp<AaptFile>& file, const bool overwriteDuplic
return NO_ERROR;
}
#if 0
printf("Error adding file %s: group %s already exists in leaf=%s path=%s\n",
file->getSourceFile().string(),
file->getGroupEntry().toDirName(String8()).string(),
mLeaf.string(), mPath.string());
#endif
// Check if the version is automatically applied. This is a common source of
// error.
ConfigDescription withoutVersion = file->getGroupEntry().toParams();
withoutVersion.version = 0;
AaptConfig::applyVersionForCompatibility(&withoutVersion);
SourcePos(file->getSourceFile(), -1).error("Duplicate file.\n%s: Original is here.",
getPrintableSource().string());
const sp<AaptFile>& originalFile = mFiles.valueAt(index);
SourcePos(file->getSourceFile(), -1)
.error("Duplicate file.\n%s: Original is here. %s",
originalFile->getPrintableSource().string(),
(withoutVersion.version != 0) ? "The version qualifier may be implied." : "");
return UNKNOWN_ERROR;
}