2014-10-09 47 views
3

使用Gradle可以將<category android:name="android.intent.category.HOME"/>添加到風味清單中活動的意向過濾器?我的味道清單包含一個與基礎清單同名的活動,但我從棉絨獲得以下內容:Error: Duplicate registration for activity com.xxx.MainActivity [DuplicateActivity]使用Gradle合併活動意圖過濾器類別

另外,通過忽略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> 

回答

4

在你表現加入以下內容:

<manifest ... 
xmlns:tools="http://schemas.android.com/tools" 
> 

如果你想要做的就是更換活動的話,你的風味清單中添加工具:節點=「替換」像這樣:

<activity android:name=".MainActivity" 
     tools:node="replace"> 
     <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> 

欲瞭解更多信息請查看:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

相關問題