AAPT2: Allow <meta-data> in <manifest>

Bug:32171613
Test: libaapt2_tests
Change-Id: I30fdd9475ff7dff6ceb0ff46a4a00991b72db68b
This commit is contained in:
Adam Lesinski
2016-12-05 19:48:20 -08:00
parent 7dbbf956f7
commit 5119e51730
5 changed files with 25 additions and 1 deletions

View File

@@ -1,2 +1,3 @@
BasedOnStyle: Google
ColumnLimit: 100

View File

@@ -25,7 +25,7 @@ namespace aapt {
static const char* sMajorVersion = "2";
// Update minor version whenever a feature or flag is added.
static const char* sMinorVersion = "3";
static const char* sMinorVersion = "4";
int PrintVersion() {
std::cerr << "Android Asset Packaging Tool (aapt) " << sMajorVersion << "."

View File

@@ -216,6 +216,8 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor,
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);

View File

@@ -87,6 +87,23 @@ TEST_F(ManifestFixerTest, EnsureManifestHasPackage) {
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")};

View File

@@ -1,5 +1,9 @@
# Android Asset Packaging Tool 2.0 (AAPT2) release notes
## Version 2.4
### `aapt2 link ...`
- Supports `<meta-data>` tags in `<manifest>`.
## Version 2.3
### `aapt2`
- Support new `font` resource type.