没有枚举常量com.android.manifmerger.NodeOperationType.MERGE-ONLY-ATTRIBUTES

时间:2018-07-25 03:24:04

标签: android gradle

这是我在AndroidManifest.xml中的代码:

<activity
      android:name=".ui.FlashActivity"
      android:screenOrientation="landscape"
      tools:node="merge-only-attributes">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

但是当我构建项目时,会出现问题:


出了什么问题: 任务':app:processDevelopDebugManifest'的执行失败。 没有枚举常量com.android.manifmerger.NodeOperationType.MERGE-ONLY-ATTRIBUTES

有人可以帮助我吗? 3ks

2 个答案:

答案 0 :(得分:2)

尝试使用"mergeOnlyAttributes"而不是"merge-only-attributes"……他们关于string-vs-enum的逻辑似乎搞砸了。

枚举值肯定仍然存在:https://android.googlesource.com/platform/tools/base/+/refs/heads/android10-release/build-system/manifest-merger/src/main/java/com/android/manifmerger/NodeOperationType.java?autodive=0%2F%2F%2F#45

答案 1 :(得分:0)

此“仅合并属性”内容似乎消失了。我也无法正常工作。但是也许您可以尝试在要从优先级较低的AndroidManifest.xml中删除的元素中使用“ tools:node =“ remove”“(如果已知)。喜欢

<activity
  android:name=".ui.FlashActivity"
  android:screenOrientation="landscape">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="some.action.to.remove"
                tools:node="remove"/>
    </intent-filter>
</activity>

甚至删除整个intent-filter:

<activity
  android:name=".ui.FlashActivity"
  android:screenOrientation="landscape">
    <intent-filter tools:node="removeAll"/>
</activity>