android牛轧糖中对android:标签的解释发生了变化(7)



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

但是在Android牛轧糖手机(和模拟器)上运行具有多种构建类型的相同应用程序会给med提供相同的启动器名称。我可以在同一时间安装,但应用程序启动标题是相同的…你知道怎么在牛轧糖设备上解决这个问题吗?它适用于Marshmallow及以下版本

更新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="My app -D"但启动器标签是我的应用程序时运行在emu上的AS。

更新2:

在Android.com上提交了一个bug。http://code.google.com/p/android/issues/detail?id=223706

BR,J

好的,我刚刚自己测试了一下,不能重现这个问题。我的建议是,你检查你的资源字符串是如何放置的。如果您希望每个构建类型的应用程序名称不同,请确保将该资源放置在每个不同的构建中,而不是放在main/res/文件夹中。

我创建了一个label .xml,其中添加了<string name="app_name">My App (X)</string>,其中X是release, debugbeta,具体取决于构建类型。这在我测试过的所有Android版本上都有效。

确保主文件夹中也没有字符串资源。但是,由于重复的资源,这会导致构建错误。

相关内容

最新更新