diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp index e0d2f48e8dcf4..2f8ca2d62061e 100644 --- a/tools/aapt2/ResourceParser.cpp +++ b/tools/aapt2/ResourceParser.cpp @@ -714,7 +714,8 @@ bool ResourceParser::ParseResource(xml::XmlPullParser* parser, } } - diag_->Warn(DiagMessage(out_resource->source) + // If the resource type was not recognized, write the error and return false. + diag_->Error(DiagMessage(out_resource->source) << "unknown resource type '" << parser->element_name() << "'"); return false; } diff --git a/tools/aapt2/cmd/Compile.cpp b/tools/aapt2/cmd/Compile.cpp index 52375a39b93f7..92beb4eb7ce46 100644 --- a/tools/aapt2/cmd/Compile.cpp +++ b/tools/aapt2/cmd/Compile.cpp @@ -701,7 +701,10 @@ int Compile(IAaptContext* context, io::IFileCollection* inputs, IArchiveWriter* } const std::string out_path = BuildIntermediateContainerFilename(path_data); - error |= !compile_func(context, options, path_data, file, output_writer, out_path); + if (!compile_func(context, options, path_data, file, output_writer, out_path)) { + context->GetDiagnostics()->Error(DiagMessage(file->GetSource()) << "file failed to compile"); + error = true; + } } return error ? 1 : 0;