其他分享
首页 > 其他分享> > 在Android Nougat(7)中有解释android:label的变化吗?

在Android Nougat(7)中有解释android:label的变化吗?

作者:互联网

我已经在gradle中的每个构建类型中添加了applicationIdSuffix,以便能够同时在同一个设备上安装每个构建类型.我还为每种构建类型提供了不同的字符串资源,这意味着我可以为每种构建类型(例如,我的应用程序,我的应用程序(测试版),我的应用程序(调试))提供唯一的字符串资源“app_name”.我在< application>上使用android:label =“app_name” AndroidManifest.xml中的元素,android:label =“app_title”on< activity> &android:label =“app_name”on< intent-filter> element,它给了我一个完美的设置:在启动器中,每个构建类型都有其独特的启动器名称,但工具栏中的标题是相同的(没有app_title的唯一资源).

但是在Android Nougat手机(和模拟器)上运行具有多种构建类型的相同应用程序会给出相同的启动器名称.我可以同时安装,但应用程序启动器标题是相同的……任何想法如何在Nougat设备上解决这个问题?它适用于棉花糖及其下方.

更新1:
无法让它发挥作用.让我分享一些代码:

<application
        ...
        android:label="@string/launcher_name">
        <a... android:name=".MainActivity"
            android:label="@string/app_name">
            <i...
                android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </i...>
        </a...>
</app...>

/debug/res/values/strings.xml包含launcher_name =“我的应用-D”
但是在emu上运行AS时,启动器标签是我的应用程序.

更新2:
在Android.com上提交了一个错误. http://code.google.com/p/android/issues/detail?id=223706

BR,
Ĵ

解决方法:

好吧,我只是自己测试过,无法重现问题.我的建议是检查资源字符串的放置方式.如果您希望每个构建类型的应用程序名称不同,请确保将该资源放在每个不同的构建中,而不是放在main / res /文件夹中.

我创建了一个labels.xml,其中添加了< string name =“app_name”> My App(X)< / string>其中X是release,debug或beta,具体取决于构建类型.这适用于我能够测试的所有Android版本.

只需确保您在主文件夹中没有字符串资源.虽然,这会导致由于重复资源导致的构建错误.

标签:android,android-7-0-nougat
来源: https://codeday.me/bug/20190711/1429749.html