Я добавил applicationIdSuffix
для каждого типа сборки в gradle, чтобы иметь возможность одновременно устанавливать все типы сборки на одном устройстве. У меня также есть разные строковые ресурсы для каждого типа сборки, что означает, что у меня может быть строковый ресурс, "app_name"
уникальный для каждого типа сборки (например, Мое приложение, Мое приложение (бета), Мое приложение (отладка)). Я использую элемент android:label="app_name"
на элементе <application>
в элементе AndroidManifest.xml
, android:label="app_title"
на элементе <activity>
и android:label="app_name"
на элементе <intent-filter>
, что дало мне идеальную настройку: в лаунчере каждый тип сборки получил свое уникальное имя лаунчера, но заголовок на панели инструментов был одинаковым (уникального ресурса нет). для app_title
).
Но запуск одного и того же приложения с несколькими типами сборки на телефонах Android Nougat (и эмуляторах) дает med одинаковые имена средств запуска. Я могу установить его одновременно, но название средства запуска приложений такое же... Есть идеи, как решить эту проблему на устройствах Nougat? Работает на 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" Но при запуске в AS на emu ярлыком запуска является My app.
Обновление 2: зарегистрирована ошибка на сайте Android.com. http://code.google.com/p/android/issues/detail?id=223706
BR, J