最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

Android开发之在library的manifest中使用 ${applicationId}

Android 天狐 13995浏览 0评论

简单描述下场景。

有个Core library Module作为公用库,里面也集成了其他第三方 比如高德地图,比如拍照时候需要的FileProvider配置。

有多个app module在同一个工程,都调用core module。为了会打包成不同的app。这样问题就来了。实际是每个app的applicationid与第三方的key都是不同的因为包名就不同。

一.对于类似FileProvider的配置

正常来说app的AndroidManifest.xml中使用 ${applicationId}就能获取到当前的applicationId

但是,不管工程是一个app target还是多个,普通library module是无法获取到app的${applicationId}的。肿么办呢,借助强大的gradle,在AndroidManifest merge以后用脚本进行字符串替换,达到目的。

1.首先在Core library Module的AndroidManifest.xml中设置占位符。

2.各app的build.gradle加段脚本

解决!

二.对于类似高德需要配置某些key的

1.首先在Core library Module的AndroidManifest.xml中设置占位符。

2.各app的build.gradle加段脚本

三.最后

对于需要区分debug等模式使用不同可以的场景

可以加些判断达到目的

本文只是抛转引用,在gradle 3.4+测试通过。

四.参考链接

https://www.jianshu.com/p/1e69d25d97cc

https://stackoverflow.com/questions/30790768/using-applicationid-in-library-manifest

转载请注明:天狐博客 » Android开发之在library的manifest中使用 ${applicationId}

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址