组件化引用极光推送,每个组件的build.gradle都需要写manifestPlaceholders

发布于 2022-09-07 04:29:24 字数 1020 浏览 20 评论 0

我通过组件化来架构我的项目,壳工程app,依赖组件A和组件B以及基础库C。工程当中需要用到极光推送,因此我在基础库C的build.gradle中加入了

compile 'cn.jiguang.sdk:jpush:3.0.9'  
compile 'cn.jiguang.sdk:jcore:1.1.7'  

同时根据极光SDK的要求,在基础库C的build.gradle中添加了

manifestPlaceholders = [
            JPUSH_PKGNAME: "com.qsjh.test",
            JPUSH_APPKEY : "6pl2c1qloa69ad60061709md", // 我随便写的,不是真实APPKEY
            JPUSH_CHANNEL: "developer-default", 
]

但是编译之后报错:

Error:Execution failed for task ':moduleA:processDebugAndroidTestManifest'.
> Manifest merger failed with multiple errors, see logs

F:\addroidStudioPrjs\TestApp\moduleA\build\intermediates\manifest\tmp\manifestMerger8803862843345368556.xml Error:
Attribute meta-data#PUSH_APPID@value at manifestMerger8803862843345368556.xml requires a placeholder substitution but no value for <JPUSH_APPKEY> is provided.

必须在组件A和组件B的build.gradle文件里也加上同样的这个manifestPlaceholders,但是组件A和组件B的build.gradle中并没有依赖极光SDK,只是依赖了基础库C,这是为什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

橪书 2022-09-14 04:29:24

使用 manifestPlaceholders 最终会把配置的 参数 写入到 AndroidManifest 中,你 在 A 和 B 中应该依赖了C 吧,这样 编译 AB 也得要求 在 gradle 中添加,不然就会找不到。

云雾 2022-09-14 04:29:24

同求答案,今天我也遇到这个问题了,用的个推

似梦非梦 2022-09-14 04:29:24

这个问题可能需要转变一下思路,组件A、组件B真正依赖的并不是推送,而是推送的内容,因此可以把第三方推送的依赖放在app壳工程,由壳来负责维护推送注册、注销、接收消息,再自己制定一套接口,由壳工程向子模块转发推送的消息,子模块自行对消息进行过滤,从而解除子模块对第三方推送包的直接依赖

想你的星星会说话 2022-09-14 04:29:24

你好 请问这个问题解决了吗 我也遇到了这个问题

冰之心 2022-09-14 04:29:24

基础库中 使用 implementation 方式 广播接收器写在在基础库中 收到消息通过eventBus发送到对应的业务modules

小瓶盖 2022-09-14 04:29:24

requires a placeholder substitution but no value for <GETUI_APP_ID> is provided

朋友,你这个报错是个推的,不是JPush的

三寸金莲 2022-09-14 04:29:24

哥们你那个组件化极光推送怎么解决了,我qq934419484

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文