Android 安卓牛轧糖(7)中对安卓:标签的解释有变化吗?
我在gradle中的每个构建类型上都添加了Android 安卓牛轧糖(7)中对安卓:标签的解释有变化吗?,android,android-7.0-nougat,Android,Android 7.0 Nougat,我在gradle中的每个构建类型上都添加了applicationIdSuffix,以便能够在同一设备上同时安装每个构建类型。对于每个构建类型,我也有不同的字符串资源,这意味着对于每个构建类型,我可以有一个唯一的字符串资源“app_name”(例如,我的应用、我的应用(beta)、我的应用(debug))。我在 比尔, 好的,我只是自己测试了一下,不能重现这个问题。我的建议是检查资源字符串的放置方式。如果您希望应用程序名称因每个生成类型而异,请确保将该资源放置在每个不同的生成中,而不是main/r
applicationIdSuffix
,以便能够在同一设备上同时安装每个构建类型。对于每个构建类型,我也有不同的字符串资源,这意味着对于每个构建类型,我可以有一个唯一的字符串资源“app_name”
(例如,我的应用、我的应用(beta)、我的应用(debug))。我在
比尔,
好的,我只是自己测试了一下,不能重现这个问题。我的建议是检查资源字符串的放置方式。如果您希望应用程序名称因每个生成类型而异,请确保将该资源放置在每个不同的生成中,而不是main/res/
文件夹中
我创建了一个labels.xml,其中添加了My App(X)
,其中X是release
,debug
或beta
,具体取决于构建类型。这适用于我测试过的所有Android版本
只需确保主文件夹中没有字符串资源。但是,由于重复的资源,这将导致生成错误 如何定义字符串资源?您是使用渐变表达式在每个生成类型上添加资源,还是在每个生成类型源文件夹中都有一个字符串资源文件?@ErikHellman我在每个生成类型文件夹中都有一个字符串资源。但我确实尝试在build.gradle中设置每个构建类型的字符串res,但它没有改变任何内容。。。应该吗?是的,看起来很奇怪。这里唯一改变的是安卓7.0拥有更高级的本地化支持。基本上,如果您在某个地方有一个默认名称和一个本地化版本,并且希望加载本地化版本,那么情况可能会有所不同。不同构建类型中的所有字符串文件是否都放在默认值文件夹中(例如,src/debug/res/values/strings.xml、src/release/res/values/strings.xml等)?是的,它们是:beta/res/values/string.xml、debug/res/values/strings.xml、main/res/values/strings.xml。。。例如,在build/mediates/res/merged/beta/values/values.xml中,app_name是我的beta版app name,这是正确的。。。我注意到一些其他安装的应用程序启动器名称在更新为牛轧糖后发生了变化,所以可能不是我的安装程序出了问题@ErikHellmanCan无法让它发挥作用。让我分享一些代码:/debug/res/values/strings.xml包含launcher_name=“My app-D”,但launcher label在emu上运行时是我的应用程序。请尝试在新的干净项目中复制它,并在b.android.com上发布有关它的错误(在这里发布一个问题的链接,我也可以关注它)。我在一个干净的项目中复制了相同的输出。在Android.com上提交了一个bug。谢谢你的努力,Erik!
<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...>