你真的了解label吗?

        最近同事写新项目,出现了一个看起来非常奇怪的问题,APP桌面的名字怎么也不能设置成自己想要的名字;

        举个栗子,正常情况下:

        <application
             ...........

            android:label="@string/app_name"/>

        "app_name" 是我们设置在桌面显示的APP名字。我们设置成什么就显示成什么。

        但我同事发现竟然没发生效!然后发现“app_name”与某个activity设置的label一样因(为使用了ToolBar)!

        后来我深究了一番,原来虽然我们都知道application与activity都可以设置label,但是他们两是有优先级的!而且activity的优先级高于application。

        所以,如果activity 与application都设置了label的话,activity会覆盖application的label显示在桌面上。当然有些项目没有使用toolbar也就一般不会存在在activity 设置的情况。

        但我这个同事的activity是主activity,即带有MAIN的activity。所以我的解决办法是:让他把Manifest 中主activity设置的label去掉,改为在具体的activity中用代码设置toolbar。这样就不会冲突了。

        顺便再提一个大家可能l比较常见的也是关于labe的问题:

        Manifest merger failed : Attribute application@label value=(@string/app_name),

        这种问题大家一般都是工程A引用B库工程,而恰恰B工程中的Manifest 也使用了 app_name,所以编译时会报冲突的错误。解决起来也很简单:

        1.manifest 的节点下面添加代码

<manifest  
......
xmlns:tools="http://schemas.android.com/tools"  

        2.在 application中添加代码

 <application
	......
        tools:replace="android:label"/>
        解决啦,小朋友和小朋友的妈妈都喜欢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值