首页 > 解决方案 > 多模块项目中 manifestPlaceholders 错误导致清单合并失败

问题描述

尝试执行 androidUnitTest 时遇到一个小问题:

“清单合并失败:manifestMerger8944498509061862801.xml 中的属性 data@scheme 需要占位符替换,但未提供值”

在我的 Android 模块清单中,我有这个意图过滤器:

  <activity
            android:name="myactivity"
            android:configChanges="keyboardHidden|orientation|screenSize|keyboard|navigation"
            android:theme="@style/actionBarTheme"
            tools:node="replace">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:scheme="${urlScheme}"
                    android:host="action"/>
            </intent-filter>
        </activity>

manifestPlaceHolders 是在口味中的 Gradle 应用程序级别定义的。

我也尝试在模块级别设置 manifestPlaceHolder,这样单元测试运行良好,但是这样当我运行应用程序时意图过滤器停止工作,因为在合并文件中,URL 方案是在模块级别

标签: androidandroid-gradle-pluginandroid-manifestplaceholderintentfilter

解决方案


推荐阅读