OSDN Git Service

AAPT2: Error on uncompiled XML or PNG files in link phase
authorAdam Lesinski <adamlesinski@google.com>
Thu, 20 Oct 2016 21:38:23 +0000 (14:38 -0700)
committerAdam Lesinski <adamlesinski@google.com>
Thu, 20 Oct 2016 21:40:49 +0000 (14:40 -0700)
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

tools/aapt2/link/Link.cpp

index a42d868..6dd34e3 100644 (file)
@@ -1299,6 +1299,17 @@ class LinkCommand {
         }
       }
       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