【发布时间】:2014-12-03 19:04:22
【问题描述】:
使用 Gradle 是否可以将 <category android:name="android.intent.category.HOME"/> 添加到风味清单中活动的意图过滤器?我的风味清单包含一个与基本清单同名的活动,但我从 lint 得到以下信息:Error: Duplicate registration for activity com.xxx.MainActivity [DuplicateActivity]
此外,通过忽略 Lint,我可以获得合并,但生成的清单同时具有来自基础清单和风味清单的意图过滤器块,而不是两者的组合。
Gradle 版本是 0.12.+ 其中the docs 似乎暗示它是可能的。
主清单包含以下活动:
<activity
android:name=".MainActivity">
<intent-filter>
<action android:name="com.reveldigital.player.RESTART"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"/>
</activity>
风味清单包含:
<activity android:name="com.xxx.MainActivity">
<intent-filter>
<action android:name="com.reveldigital.player.RESTART"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</activity>
我得到的结果是这样的:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="com.reveldigital.player.RESTART"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="com.reveldigital.player.RESTART"/>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.HOME"/>
</intent-filter>
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"/>
</activity>
【问题讨论】:
标签: android android-activity gradle android-gradle-plugin