解决processDebugAndroidTestManifest Attribute meta-data#XXX@value requires a placeholder substitution but no value is provided.

在集成极光推送 SDK 的时候,如果把极光推送集成到一个独立的 AAR 包中,在编译的时候会发生如下报错:

如果是构建单一 APK 的情况下,可以直接在 AAR 项目里面通过 manifestPlaceholders 直接配置这些参数。

但是如果是多渠道打包的情况下,我们会在统一的地方根据不同的渠道进行配置。

这个时候直接在 AAR 项目里面配置就不合适了,此时我们观察报错信息,会发现其实真正报错的地方是执行单元测试的时候报错(processDebugAndroidTestManifest)。

其实也容易理解,执行 AndroidTest 的时候,需要生成单独测的测试 APK,这一步就必须补充完整全部的 meta-data 信息,否则无法顺利生成 APK

通过上述的分析,解决这个问题就比较简单了,我们只需要在测试用例的时候补充这些 meta-data 信息即可。

那接下来就是怎么生成 AndroidTest 的时候的配置信息,网上搜索很久,才在 Possibility to define manifestPlaceholders or BuildConfig variables just for tests 找到相关的解决方案。

参考解决方法如下:

极光推送相关的解决参考如下:

参考链接