AAPT2: Error on uncompiled XML or PNG files in link phase
Incorrectly passing text XML and unprocessed PNG files to
the AAPT2 link phase should raise an error.
Test: manual incorrect invocation of aapt2
Change-Id: Iab47f99bc378b5d1c4f4d87098f08243b9a4dc6a
diff --git a/tools/aapt2/link/Link.cpp b/tools/aapt2/link/Link.cpp
index a42d868..6dd34e3 100644
--- a/tools/aapt2/link/Link.cpp
+++ b/tools/aapt2/link/Link.cpp
@@ -1299,6 +1299,17 @@
}
}
return true;
+ } else if (util::stringEndsWith(src.path, ".xml") ||
+ util::stringEndsWith(src.path, ".png")) {
+ // Since AAPT compiles these file types and appends .flat to them, seeing
+ // their raw extensions is a sign that they weren't compiled.
+ const StringPiece fileType =
+ util::stringEndsWith(src.path, ".xml") ? "XML" : "PNG";
+ mContext->getDiagnostics()->error(DiagMessage(src)
+ << "uncompiled " << fileType
+ << " file passed as argument. Must be "
+ "compiled first into .flat file.");
+ return false;
}
// Ignore non .flat files. This could be classes.dex or something else that