在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Scala  Android/ 組件化引用極光推送,每個組件的build.gradle都需要寫manifestP

組件化引用極光推送,每個組件的build.gradle都需要寫manifestPlaceholders

我通過組件化來架構(gòu)我的項目,殼工程app,依賴組件A和組件B以及基礎(chǔ)庫C。工程當(dāng)中需要用到極光推送,因此我在基礎(chǔ)庫C的build.gradle中加入了

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

同時根據(jù)極光SDK的要求,在基礎(chǔ)庫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,只是依賴了基礎(chǔ)庫C,這是為什么?

回答
編輯回答
離殤

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

朋友,你這個報錯是個推的,不是JPush的

2018年8月15日 08:32
編輯回答
陌顏

使用 manifestPlaceholders 最終會把配置的 參數(shù) 寫入到 AndroidManifest 中,你 在 A 和 B 中應(yīng)該依賴了C 吧,這樣 編譯 AB 也得要求 在 gradle 中添加,不然就會找不到。

2018年2月1日 11:38
編輯回答
朕略萌

同求答案,今天我也遇到這個問題了,用的個推

2018年3月10日 15:55
編輯回答
枕邊人

這個問題可能需要轉(zhuǎn)變一下思路,組件A、組件B真正依賴的并不是推送,而是推送的內(nèi)容,因此可以把第三方推送的依賴放在app殼工程,由殼來負(fù)責(zé)維護推送注冊、注銷、接收消息,再自己制定一套接口,由殼工程向子模塊轉(zhuǎn)發(fā)推送的消息,子模塊自行對消息進行過濾,從而解除子模塊對第三方推送包的直接依賴

2017年11月23日 09:19