ОК заголовок кажется немного запутанным. Давайте разберемся с ним.
У меня есть приложение с несколькими вариантами продуктов (demo, appOne, appTwo) и различными вариантами сборки (отладка, ночная версия, бета, выпуск).
Все варианты продукта,кроме одного, будет использоваться значение по умолчанию MainActivity
, объявленное в main AndroidManifest.xml
, все в каталоге main .
Исключением является demo
один. Поэтому я создал DemoActivity
, расположенный в исходном каталоге demo * 1016. *.
Я рассмотрел несколько решений, и только одно позволило мне достичь именно того, чего я хочу: manifestPlaceholder , чтобы узнать, что является запуском .
Мой уникальный AndroidManifest.xml
<application
// usual configuration (although, appName is also set via a placeholder)
<activity
android:name="${launcherActivity}"
android:screenOrientation="userPortrait"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
И в моем Gradle:
flavorDimensions "app"
productFlavors {
demo {
versionName = "0.0.0"
versionCode = 1
applicationIdSuffix '.demo'
manifestPlaceholders = [
appName: "Demo App",
launcherActivity: "com.mycompany.view.DemoActivity"
]
}
appOne {
versionName = "1.0.2"
versionCode = 7
applicationIdSuffix '.appone'
manifestPlaceholders = [
appName: "App ONE",
launcherActivity: "com.mycompany.view.main.MainActivity"
]
}
appTwo {
versionName = "0.0.0"
versionCode = 1
applicationIdSuffix '.apptwo'
manifestPlaceholders = [
appName: "App TWO",
launcherActivity: "com.mycompany.view.main.MainActivity"
]
}
}
В целом, это действительно работает. Если я просто установлю APK и коснусь значка запуска, он запустит правильные значения Activity
, как и ожидалось.
Но Android Studio не удалось это сделать. Это проблема с инструментом Run/Debug Configuration
:
Ошибка при выполнении: am start -n "com.mycompany.demo.debug / com.mycompany. \ $ {LauncherActivity}" -a android. intent.action.MAIN -c android.intent.category.LAUNCHER
Опять же, как я уже сказал, фактическая сборка APK работает без нареканий, просто Android Studio не способна запуститьDefault Activity
.
Как настроить Android Studio? Спасибо за помощь.