我已经在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
, debug
或beta
,具体取决于构建类型。这在我测试过的所有Android版本上都有效。
确保主文件夹中也没有字符串资源。但是,由于重复的资源,这会导致构建错误。