AAPT2: Error reporting through JNI.
Rather than relying on stderr being wired correctly.
Test: Tests for JNI integration in studio-master-dev.
Change-Id: I1c7e7130bc4e56d61de259a9596bee3a6b3520fb
diff --git a/tools/aapt2/cmd/Link.cpp b/tools/aapt2/cmd/Link.cpp
index 258516d..93748d3 100644
--- a/tools/aapt2/cmd/Link.cpp
+++ b/tools/aapt2/cmd/Link.cpp
@@ -118,7 +118,8 @@
class LinkContext : public IAaptContext {
public:
- LinkContext() : name_mangler_({}), symbols_(&name_mangler_) {
+ LinkContext(IDiagnostics* diagnostics)
+ : diagnostics_(diagnostics), name_mangler_({}), symbols_(&name_mangler_) {
}
PackageType GetPackageType() override {
@@ -130,7 +131,7 @@
}
IDiagnostics* GetDiagnostics() override {
- return &diagnostics_;
+ return diagnostics_;
}
NameMangler* GetNameMangler() override {
@@ -181,7 +182,7 @@
DISALLOW_COPY_AND_ASSIGN(LinkContext);
PackageType package_type_ = PackageType::kApp;
- StdErrDiagnostics diagnostics_;
+ IDiagnostics* diagnostics_;
NameMangler name_mangler_;
std::string compilation_package_;
uint8_t package_id_ = 0x0;
@@ -1736,8 +1737,8 @@
std::map<size_t, std::string> shared_libs_;
};
-int Link(const std::vector<StringPiece>& args) {
- LinkContext context;
+int Link(const std::vector<StringPiece>& args, IDiagnostics* diagnostics) {
+ LinkContext context(diagnostics);
LinkOptions options;
std::vector<std::string> overlay_arg_list;
std::vector<std::string> extra_java_packages;