AAPT2: Allow <meta-data> in <manifest>
Bug:32171613
Test: libaapt2_tests
Change-Id: I30fdd9475ff7dff6ceb0ff46a4a00991b72db68b
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index 36a3494..4185937e6 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -216,6 +216,8 @@
manifest_action["supports-gl-texture"];
+ manifest_action["meta-data"] = meta_data_action;
+
// Application actions.
xml::XmlNodeAction& application_action = manifest_action["application"];
application_action.Action(OptionalNameIsJavaClassName);
diff --git a/tools/aapt2/link/ManifestFixer_test.cpp b/tools/aapt2/link/ManifestFixer_test.cpp
index e9bc64a..fc6970c 100644
--- a/tools/aapt2/link/ManifestFixer_test.cpp
+++ b/tools/aapt2/link/ManifestFixer_test.cpp
@@ -87,6 +87,23 @@
EXPECT_EQ(nullptr, Verify("<manifest package=\"@string/str\" />"));
}
+TEST_F(ManifestFixerTest, AllowMetaData) {
+ auto doc = Verify(R"EOF(
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android">
+ <meta-data />
+ <application>
+ <meta-data />
+ <activity android:name=".Hi"><meta-data /></activity>
+ <activity-alias android:name=".Ho"><meta-data /></activity-alias>
+ <receiver android:name=".OffToWork"><meta-data /></receiver>
+ <provider android:name=".We"><meta-data /></provider>
+ <service android:name=".Go"><meta-data /></service>
+ </application>
+ </manifest>)EOF");
+ ASSERT_NE(nullptr, doc);
+}
+
TEST_F(ManifestFixerTest, UseDefaultSdkVersionsIfNonePresent) {
ManifestFixerOptions options = {std::string("8"), std::string("22")};