Android使用productFlavors打不同包名的包


近期得到这样一个需求,产品要求在原有项目功能不变动的情况下重新打包一个不同包名不同应用名不同图标的应用方便测试进行功能试验。所以就有了下面这篇文章,可能写的不太完善,仅供大家参考。如果大家有更好的方案欢迎留言评论,大家共同进步。


首先在APP下的build.gradle中配置


productFlavors

productFlavors {
    wisdom {
        //基础版本.
        applicationId "应用包名"
        resValue "string", "app_name", "应用名称"
        manifestPlaceholders = [app_icon     : "应用图标",
                                package_name : applicationId,
                                //下面这些配置根据自己需求进行各自配置
                               WEIBO_APPKEY : "微博APPKEY",
                                JPUSH_PKGNAME: 接受推送的包名,
                                JPUSH_APPKEY : "极光推送的APPKEY", //JPush上注册的包名对应的appkey.
                                JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
        ]

    }
    sim {
        //新版本
        applicationId "新的应用包名"
        resValue "string", "app_name", "新的应用名称"
        manifestPlaceholders = [app_icon     : "新的应用图标",
                                package_name : applicationId,
                                WEIBO_APPKEY : "微博APPKEY",
                                JPUSH_PKGNAME: 接受推送的包名,
                                JPUSH_APPKEY : "极光推送的APPKEY", //JPush上注册的包名对应的appkey.
                                JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
        ]


    }
}



这就是在build.gradle中进行的配置。


下面还需要在AndroidManifest.xml文件中进行一些修改.

首先application中

android:icon="${app_icon}"
icon图不能写成固定的,要根据gradle中配置的进行更改。

好了配置到这样基本大功告成了,现在信心满满高高兴兴的运行项目了。。。

高兴、开心、兴奋。。。。。





阿西吧,我明明改过包名也进行过相关配置了啊,怎么还让我卸载原有的APP。。

经过一顿查阅资料,原来是provider权限问题导致的。。那怎么解决呢 。。


其实也没有那么难,只需要在AndroidManifest.xml文件中进行provider的配置即可。。

具体如下:

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="${package_name}.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

android:authorities="${package_name}.provider"
主要是这一行的配置,原来这里我是写死的才会导致让我卸载原有应用,一定注意这一行配置一定要写成和gradle中配置的相应的包名。。


现在运行,OK两个应用能够共存了。。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值