diff options
Diffstat (limited to 'manifmerger/tests/src')
8 files changed, 460 insertions, 77 deletions
diff --git a/manifmerger/tests/src/com/android/manifmerger/ManifestMergerTest.java b/manifmerger/tests/src/com/android/manifmerger/ManifestMergerTest.java index 1482792..564fc6d 100755 --- a/manifmerger/tests/src/com/android/manifmerger/ManifestMergerTest.java +++ b/manifmerger/tests/src/com/android/manifmerger/ManifestMergerTest.java @@ -145,4 +145,8 @@ public class ManifestMergerTest extends ManifestMergerTestCase { public void test56_support_gltext_warning() throws Exception { processTestFiles(); } + + public void test60_merge_order() throws Exception { + processTestFiles(); + } } diff --git a/manifmerger/tests/src/com/android/manifmerger/data/11_activity_dup.xml b/manifmerger/tests/src/com/android/manifmerger/data/11_activity_dup.xml index 5ba6688..ef163b0 100755 --- a/manifmerger/tests/src/com/android/manifmerger/data/11_activity_dup.xml +++ b/manifmerger/tests/src/com/android/manifmerger/data/11_activity_dup.xml @@ -366,22 +366,41 @@ </manifest> + @errors E [ManifestMergerTest0_main.xml:32, ManifestMergerTest1_lib1_widget.xml:16] Trying to merge incompatible /manifest/application/activity[@name=com.example.WidgetConfigurationUI] element: - <activity android:name=com.example.WidgetConfigurationUI> --- <intent-filter> -++ (end reached) + <activity + @android:name="com.example.WidgetConfigurationUI" +--</activity> +--(end reached) + <activity + @android:name="com.example.WidgetConfigurationUI" +++ <intent-filter> +++ <action +++ @android:name="android.appwidget.action.APPWIDGET_CONFIGURE"> E [ManifestMergerTest0_main.xml:38, ManifestMergerTest2_lib2_activity.xml:6] Trying to merge incompatible /manifest/application/activity[@name=com.example.LibActivity] element: - <activity android:name=com.example.LibActivity> - @android:icon = @drawable/lib_activity_icon - @android:label = @string/lib_activity_name - @android:name = com.example.LibActivity --- @android:theme = @style/Lib.Theme + <activity +-- @android:name="com.example.LibActivity"> +-- <intent-filter> +-- <action + <activity +++ @android:name="com.example.LibActivity" +++ @android:theme="@style/Lib.Theme"> +++ <intent-filter> E [ManifestMergerTest0_main.xml, ManifestMergerTest3_lib3_alias.xml:19] Trying to merge incompatible /manifest/application/activity[@name=com.example.LibActivity2] element: - <activity android:name=com.example.LibActivity2> - <intent-filter> - <action android:name=android.intent.action.MAIN> - <category android:name=android.intent.category.LAUNCHER> --- <category android:name=android.intent.category.MOARCATZPLZ> -++ (end reached) + <activity + @android:name="com.example.LibActivity2" + @android:name="android.intent.action.MAIN"> + @android:name="android.intent.category.LAUNCHER"> +-- </intent-filter> +--</activity> +--(end reached) + <activity + @android:name="com.example.LibActivity2" + <intent-filter> + @android:name="android.intent.action.MAIN"> + @android:name="android.intent.category.LAUNCHER"> +++ <category +++ @android:name="android.intent.category.MOARCATZPLZ"> +++ </category> diff --git a/manifmerger/tests/src/com/android/manifmerger/data/12_alias_dup.xml b/manifmerger/tests/src/com/android/manifmerger/data/12_alias_dup.xml index 696965f..7b5aed3 100755 --- a/manifmerger/tests/src/com/android/manifmerger/data/12_alias_dup.xml +++ b/manifmerger/tests/src/com/android/manifmerger/data/12_alias_dup.xml @@ -192,14 +192,20 @@ P [ManifestMergerTest0_main.xml:6, ManifestMergerTest1_lib1.xml:6] Skipping identical /manifest/application/activity-alias[@name=com.example.alias.MyActivity1] element. E [ManifestMergerTest0_main.xml:13, ManifestMergerTest1_lib1.xml:14] Trying to merge incompatible /manifest/application/activity-alias[@name=com.example.alias.MyActivity2] element: - <activity-alias android:name=com.example.alias.MyActivity2> -++ @android:icon = @drawable/alias_icon2 -++ @android:label = @string/alias_name2 - @android:name = com.example.alias.MyActivity2 - @android:targetActivity = com.example.MainActivity2 + <activity-alias +-- @android:icon="@drawable/alias_icon2" +-- @android:label="@string/alias_name2" +-- @android:name="com.example.alias.MyActivity2" + <activity-alias +++ @android:name="com.example.alias.MyActivity2" +++ @android:targetActivity="com.example.MainActivity2"> +++</activity-alias> E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:6] Trying to merge incompatible /manifest/application/activity-alias[@name=com.example.alias.MyActivity3] element: - <activity-alias android:name=com.example.alias.MyActivity3> - @android:icon = @drawable/alias_icon3 - @android:label = @string/alias_name3 - @android:name = com.example.alias.MyActivity3 -++ @android:targetActivity = com.example.MainActivity3 + <activity-alias +-- @android:name="com.example.alias.MyActivity3" +-- @android:targetActivity="com.example.MainActivity3"> +-- <intent-filter> + <activity-alias +++ @android:name="com.example.alias.MyActivity3"> +++ <intent-filter> +++ <category diff --git a/manifmerger/tests/src/com/android/manifmerger/data/13_service_dup.xml b/manifmerger/tests/src/com/android/manifmerger/data/13_service_dup.xml index 36d7e24..4c257fa 100755 --- a/manifmerger/tests/src/com/android/manifmerger/data/13_service_dup.xml +++ b/manifmerger/tests/src/com/android/manifmerger/data/13_service_dup.xml @@ -146,10 +146,22 @@ P [ManifestMergerTest0_main.xml:6, ManifestMergerTest1_lib1.xml:6] Skipping identical /manifest/application/service[@name=com.example.AppService1] element. E [ManifestMergerTest0_main.xml:8, ManifestMergerTest1_lib1.xml:9] Trying to merge incompatible /manifest/application/service[@name=com.example.AppService2] element: - <service android:name=com.example.AppService2> --- <intent-filter> -++ (end reached) + <service + @android:name="com.example.AppService2"> +--</service> +--(end reached) + <service + @android:name="com.example.AppService2"> +++ <intent-filter> +++ <action +++ @android:name="android.intent.action.MAIN"> E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:6] Trying to merge incompatible /manifest/application/service[@name=com.example.AppService3] element: - <service android:name=com.example.AppService3> --- (end reached) -++ <intent-filter> + <service + @android:name="com.example.AppService3"> +-- <intent-filter> +-- <action +-- @android:name="android.intent.action.MAIN"> + <service + @android:name="com.example.AppService3"> +++</service> +++(end reached) diff --git a/manifmerger/tests/src/com/android/manifmerger/data/14_receiver_dup.xml b/manifmerger/tests/src/com/android/manifmerger/data/14_receiver_dup.xml index a2547af..777ba22 100755 --- a/manifmerger/tests/src/com/android/manifmerger/data/14_receiver_dup.xml +++ b/manifmerger/tests/src/com/android/manifmerger/data/14_receiver_dup.xml @@ -165,12 +165,22 @@ P [ManifestMergerTest0_main.xml:6, ManifestMergerTest1_lib1.xml:6] Skipping identical /manifest/application/receiver[@name=com.example.AppReceiver1] element. E [ManifestMergerTest0_main.xml:12, ManifestMergerTest1_lib1.xml:13] Trying to merge incompatible /manifest/application/receiver[@name=com.example.AppReceiver2] element: - <receiver android:name=com.example.AppReceiver2> -++ @android:icon = @drawable/app_icon - @android:name = com.example.AppReceiver2 + <receiver +-- @android:icon="@drawable/app_icon" +-- @android:name="com.example.AppReceiver2"> +-- <intent-filter> + <receiver +++ @android:name="com.example.AppReceiver2"> +++</receiver> +++(end reached) E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:6] Trying to merge incompatible /manifest/application/receiver[@name=com.example.AppReceiver3] element: - <receiver android:name=com.example.AppReceiver3> - <intent-filter> - <action android:name=com.example.action.ACTION_CUSTOM> --- @android:name = com.example.action.ACTION_CUSTOM -++ @android:name = com.example.action.ACTION_CUSTOM1 + <receiver + @android:name="com.example.AppReceiver3"> + <intent-filter> + <action +-- @android:name="com.example.action.ACTION_CUSTOM1"> + <receiver + @android:name="com.example.AppReceiver3"> + <intent-filter> + <action +++ @android:name="com.example.action.ACTION_CUSTOM"> diff --git a/manifmerger/tests/src/com/android/manifmerger/data/15_provider_dup.xml b/manifmerger/tests/src/com/android/manifmerger/data/15_provider_dup.xml index 7938c1e..bd0c8fe 100755 --- a/manifmerger/tests/src/com/android/manifmerger/data/15_provider_dup.xml +++ b/manifmerger/tests/src/com/android/manifmerger/data/15_provider_dup.xml @@ -134,12 +134,20 @@ P [ManifestMergerTest0_main.xml:6, ManifestMergerTest1_lib1.xml:6] Skipping identical /manifest/application/provider[@name=com.example.Provider1] element. E [ManifestMergerTest0_main.xml:8, ManifestMergerTest1_lib1.xml:9] Trying to merge incompatible /manifest/application/provider[@name=com.example.Provider2] element: - <provider android:name=com.example.Provider2> --- @android:authorities = com.example.android.apis.app.thingy2 --- @android:enabled = @bool/someConditionalValue2 - @android:name = com.example.Provider2 + <provider +-- @android:name="com.example.Provider2"> +--</provider> +--(end reached) + <provider +++ @android:authorities="com.example.android.apis.app.thingy2" +++ @android:enabled="@bool/someConditionalValue2" +++ @android:name="com.example.Provider2"> E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:6] Trying to merge incompatible /manifest/application/provider[@name=com.example.Provider3] element: - <provider android:name=com.example.Provider3> - @android:authorities = com.example.android.apis.app.thingy3 -++ @android:enabled = @bool/someConditionalValue - @android:name = com.example.Provider3 + <provider +-- @android:enabled="@bool/someConditionalValue" +-- @android:name="com.example.Provider3"> +--</provider> + <provider +++ @android:name="com.example.Provider3"> +++</provider> +++(end reached) diff --git a/manifmerger/tests/src/com/android/manifmerger/data/26_permission_dup.xml b/manifmerger/tests/src/com/android/manifmerger/data/26_permission_dup.xml index 3862249..bd9a4f1 100755 --- a/manifmerger/tests/src/com/android/manifmerger/data/26_permission_dup.xml +++ b/manifmerger/tests/src/com/android/manifmerger/data/26_permission_dup.xml @@ -269,39 +269,46 @@ @errors E [ManifestMergerTest0_main.xml:12, ManifestMergerTest1_lib1.xml:4] Trying to merge incompatible /manifest/permission[@name=com.example.DangerWillRobinson] element: - <permission android:name=com.example.DangerWillRobinson> --- @android:description = Different description here -++ @android:description = Insert boring description here --- @android:icon = @drawable/not_the_same_icon -++ @android:icon = @drawable/robot - @android:label = Danger, Will Robinson! - @android:name = com.example.DangerWillRobinson - @android:permissionGroup = com.example.MasterControlPermission - @android:protectionLevel = dangerous + <permission +-- @android:description="Insert boring description here" +-- @android:icon="@drawable/robot" + <permission +++ @android:description="Different description here" +++ @android:icon="@drawable/not_the_same_icon" E [ManifestMergerTest0_main.xml:14, ManifestMergerTest1_lib1.xml:8] Trying to merge incompatible /manifest/permission[@name=com.example.WhatWereYouThinking] element: - <permission android:name=com.example.WhatWereYouThinking> - @android:name = com.example.WhatWereYouThinking - @android:permissionGroup = com.example.MasterControlPermission --- @android:protectionLevel = normal -++ @android:protectionLevel = signatureOrSystem + <permission + @android:name="com.example.WhatWereYouThinking" +-- @android:protectionLevel="signatureOrSystem"> + <permission + @android:name="com.example.WhatWereYouThinking" +++ @android:protectionLevel="normal"> E [ManifestMergerTest0_main.xml:16, ManifestMergerTest1_lib1.xml:5] Trying to merge incompatible /manifest/permission-group[@name=com.example.MasterControlPermission] element: - <permission-group android:name=com.example.MasterControlPermission> - @android:description = Nobody expects... -++ @android:icon = @drawable/ignored_icon - @android:label = the Spanish Inquisition - @android:name = com.example.MasterControlPermission + <permission-group +-- @android:icon="@drawable/ignored_icon" +-- @android:label="the Spanish Inquisition" +-- @android:name="com.example.MasterControlPermission"> + <permission-group +++ @android:label="the Spanish Inquisition" +++ @android:name="com.example.MasterControlPermission"> +++</permission-group> E [ManifestMergerTest0_main.xml:18, ManifestMergerTest1_lib1.xml:6] Trying to merge incompatible /manifest/permission-tree[@name=com.example.PermTree] element: - <permission-tree android:name=com.example.PermTree> -++ @android:label = This is not a label --- @android:label = This is not the same label - @android:name = com.example.PermTree + <permission-tree +-- @android:label="This is not a label" + <permission-tree +++ @android:label="This is not the same label" E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:6] Trying to merge incompatible /manifest/permission[@name=com.example.Permission1] element: - <permission android:name=com.example.Permission1> - @android:name = com.example.Permission1 - @android:permissionGroup = com.example.Permission1 -++ @android:protectionLevel = normal --- @android:protectionLevel = system + <permission + @android:name="com.example.Permission1" +-- @android:protectionLevel="normal"> + <permission + @android:name="com.example.Permission1" +++ @android:protectionLevel="system"> E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:7] Trying to merge incompatible /manifest/permission-tree[@name=com.example.PermTree1] element: - <permission-tree android:name=com.example.PermTree1> --- @android:description = Extra description - @android:name = com.example.PermTree1 + <permission-tree +-- @android:name="com.example.PermTree1"> +--</permission-tree> +--(end reached) + <permission-tree +++ @android:description="Extra description" +++ @android:name="com.example.PermTree1"> +++</permission-tree> diff --git a/manifmerger/tests/src/com/android/manifmerger/data/60_merge_order.xml b/manifmerger/tests/src/com/android/manifmerger/data/60_merge_order.xml new file mode 100755 index 0000000..e820ecb --- /dev/null +++ b/manifmerger/tests/src/com/android/manifmerger/data/60_merge_order.xml @@ -0,0 +1,317 @@ +# +# Test: +# - When activity / activity-alias / service / receiver / provider are merged, +# we do a comparison to check whether the elements are already present in the +# main manifest. +# - What this checks is that the order of the elements or attributes within +# the elements should not matter. +# + +@main + +<manifest + xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.app1"> + + <application + android:label="@string/app_name" + android:icon="@drawable/app_icon" + android:backupAgent="com.example.app.BackupAgentClass" + android:restoreAnyVersion="true" + android:allowBackup="true" + android:killAfterRestore="true" + android:name="com.example.TheApp" > + + <activity + android:name="com.example.Activity1" + android:label="@string/activity_name" + android:icon="@drawable/activity_icon" + android:theme="@style/Some.Theme"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <meta-data + android:name="metaName" + android:value="metaValue" + android:resource="@color/someColor" /> + </activity> + + <!-- Receiver --> + <receiver + android:name="com.example.AppReceiver" + android:icon="@drawable/app_icon"> + <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + </intent-filter> + <intent-filter> + <action android:name="com.example.intent.action.DO_THIS" /> + </intent-filter> + <intent-filter> + <action android:name="com.example.intent.action.DO_THAT" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.TIMEZONE_CHANGED" /> + <action android:name="android.intent.action.TIME_SET" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.PHONE_STATE"/> + </intent-filter> + </receiver> + + <activity + android:name="com.example.LibActivity" + android:label="@string/lib_activity_name" + android:icon="@drawable/lib_activity_icon" + android:theme="@style/Lib.Theme"> + + <!-- When comparing duplicate elements, whitespace and comments are ignored. --> + + <intent-filter> + <action android:name="com.example.IN_APP_NOTIFY" /> + <action android:name="com.example.RESPONSE_CODE" /> + <action android:name="com.example.PURCHASE_STATE_CHANGED" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <meta-data + android:name="metaName2" + android:value="metaValue2" + android:resource="@color/someColor2" + /> + </activity> + </application> +</manifest> + + +@lib1 + +<manifest + xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.lib1"> + + <!-- Redefine the same elements as in the main manifest except it changes + the attribute order and the the inner elements order. --> + <application + android:name="com.example.TheApp" + android:icon="@drawable/app_icon" + android:label="@string/app_name" + android:allowBackup="true" + android:killAfterRestore="true" + android:restoreAnyVersion="true" + android:backupAgent="com.example.app.BackupAgentClass" + > + + <!-- Receiver --> + <receiver + android:icon="@drawable/app_icon" + android:name="com.example.AppReceiver" + > + <intent-filter> + <action android:name="android.intent.action.TIME_SET" /> + <action android:name="android.intent.action.TIMEZONE_CHANGED" /> + </intent-filter> + <intent-filter> + <action android:name="com.example.intent.action.DO_THIS" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.PHONE_STATE"/> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + </intent-filter> + <intent-filter> + <action android:name="com.example.intent.action.DO_THAT" /> + </intent-filter> + </receiver> + + <activity + android:theme="@style/Lib.Theme" + android:name="com.example.LibActivity" + android:icon="@drawable/lib_activity_icon" + android:label="@string/lib_activity_name" + > + <!-- When comparing duplicate elements, whitespace and comments are ignored. --> + <intent-filter> + <category android:name="android.intent.category.LAUNCHER" /> + <action android:name="android.intent.action.MAIN" /> + </intent-filter> + <meta-data + android:resource="@color/someColor2" + android:value="metaValue2" + android:name="metaName2"> + </meta-data> + <intent-filter> + <action android:name="com.example.IN_APP_NOTIFY" /> + <action android:name="com.example.PURCHASE_STATE_CHANGED" /> + <action android:name="com.example.RESPONSE_CODE" /> + </intent-filter> + </activity> + + <activity + android:icon="@drawable/activity_icon" + android:label="@string/activity_name" + android:name="com.example.Activity1" + android:theme="@style/Some.Theme"> + <meta-data + android:value="metaValue" + android:name="metaName" + android:resource="@color/someColor" /> + <intent-filter> + <category android:name="android.intent.category.LAUNCHER" /> + <action android:name="android.intent.action.MAIN" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> + + +@lib2 + +<manifest + xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.lib2"> + + <application + android:label="@string/app_name" + android:icon="@drawable/app_icon" + android:backupAgent="com.example.app.BackupAgentClass" + android:restoreAnyVersion="true" + android:allowBackup="true" + android:killAfterRestore="true" + android:name="com.example.TheApp" > + + <!-- The whitespace and alignment is also drastically different here and has + no impact whatsoever on the content's comparison. + Some empty elements have been 'uncollapsed' with their closing element separated. --> + <activity android:label="@string/activity_name" android:icon="@drawable/activity_icon" android:theme="@style/Some.Theme" android:name="com.example.Activity1"> + <intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter> + <intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter> + <meta-data android:value="metaValue" android:resource="@color/someColor" android:name="metaName" /> + </activity> + <activity android:label="@string/lib_activity_name" android:icon="@drawable/lib_activity_icon" android:name="com.example.LibActivity" android:theme="@style/Lib.Theme"><intent-filter> + <action android:name="com.example.IN_APP_NOTIFY" /> <action android:name="com.example.RESPONSE_CODE" /> <action android:name="com.example.PURCHASE_STATE_CHANGED" /> + </intent-filter> + <intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <meta-data android:name="metaName2" android:value="metaValue2" android:resource="@color/someColor2" + /> + </activity> + + <!-- Receiver --> + <receiver android:icon="@drawable/app_icon" android:name="com.example.AppReceiver" > + <intent-filter><action android:name="android.intent.action.TIME_SET"></action> + <action android:name="android.intent.action.TIMEZONE_CHANGED" /></intent-filter> + <intent-filter><action android:name="android.intent.action.PHONE_STATE" > + </action></intent-filter> + <intent-filter><action android:name="android.intent.action.BOOT_COMPLETED" /> + </intent-filter> + <intent-filter><action android:name="com.example.intent.action.DO_THIS" /></intent-filter> + <intent-filter><action android:name="com.example.intent.action.DO_THAT" /></intent-filter> + </receiver> + </application> +</manifest> + + + +@result + +<manifest + xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.app1"> + + <application + android:label="@string/app_name" + android:icon="@drawable/app_icon" + android:backupAgent="com.example.app.BackupAgentClass" + android:restoreAnyVersion="true" + android:allowBackup="true" + android:killAfterRestore="true" + android:name="com.example.TheApp" > + + <activity + android:name="com.example.Activity1" + android:label="@string/activity_name" + android:icon="@drawable/activity_icon" + android:theme="@style/Some.Theme"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <meta-data + android:name="metaName" + android:value="metaValue" + android:resource="@color/someColor" /> + </activity> + + <!-- Receiver --> + <receiver + android:name="com.example.AppReceiver" + android:icon="@drawable/app_icon"> + <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + </intent-filter> + <intent-filter> + <action android:name="com.example.intent.action.DO_THIS" /> + </intent-filter> + <intent-filter> + <action android:name="com.example.intent.action.DO_THAT" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.TIMEZONE_CHANGED" /> + <action android:name="android.intent.action.TIME_SET" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.PHONE_STATE"/> + </intent-filter> + </receiver> + + <activity + android:name="com.example.LibActivity" + android:label="@string/lib_activity_name" + android:icon="@drawable/lib_activity_icon" + android:theme="@style/Lib.Theme"> + + <!-- When comparing duplicate elements, whitespace and comments are ignored. --> + + <intent-filter> + <action android:name="com.example.IN_APP_NOTIFY" /> + <action android:name="com.example.RESPONSE_CODE" /> + <action android:name="com.example.PURCHASE_STATE_CHANGED" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + <meta-data + android:name="metaName2" + android:value="metaValue2" + android:resource="@color/someColor2" + /> + </activity> + </application> +</manifest> + +@errors + +P [ManifestMergerTest0_main.xml:37, ManifestMergerTest1_lib1.xml:26] Skipping identical /manifest/application/activity[@name=com.example.LibActivity] element. +P [ManifestMergerTest0_main.xml:5, ManifestMergerTest1_lib1.xml:41] Skipping identical /manifest/application/activity[@name=com.example.Activity1] element. +P [ManifestMergerTest0_main.xml:18, ManifestMergerTest1_lib1.xml:7] Skipping identical /manifest/application/receiver[@name=com.example.AppReceiver] element. +P [ManifestMergerTest0_main.xml:5, ManifestMergerTest2_lib2.xml:6] Skipping identical /manifest/application/activity[@name=com.example.Activity1] element. +P [ManifestMergerTest0_main.xml:37, ManifestMergerTest2_lib2.xml:11] Skipping identical /manifest/application/activity[@name=com.example.LibActivity] element. +P [ManifestMergerTest0_main.xml:18, ManifestMergerTest2_lib2.xml:20] Skipping identical /manifest/application/receiver[@name=com.example.AppReceiver] element. |