我为我的应用程序配置了不同的样式。当我将两种口味安装在同一设备上时,会遇到很大的问题。
当我打开App1(风味1)然后将其最小化(单击“主页”按钮)并尝试打开App2(风味2)时,它将打开App1(风味1)。为了打开App2,我必须杀死最近的App1,然后再打开App2。反之亦然。
我也尝试使用不同的风味尺寸。这是我当前的配置。
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
flavorDimensions("default")
defaultConfig {
applicationId "com.xx.aa"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
disable 'RestrictedApi'
}
productFlavors {
aa {
applicationId "com.xx.aa"
versionCode 12
versionName "1.0.1"
manifestPlaceholders = [
appName: 'aa',
appId : 'com.xx.aa'
]
buildConfigField "boolean", "XXXX", "false"
}
bb {
applicationId "com.xx.bb"
versionCode 2
versionName "1.2.3"
manifestPlaceholders = [
appName: 'bb',
appId : 'com.xx.bb'
]
buildConfigField "boolean", "XXXX", "true"
}
}
我的清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xx.aa">
<!-- few permissions-->
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<application
android:name=".global.aaApplication"
android:allowBackup="false"
android:fullBackupContent="false"
android:icon="@drawable/ic_launcher_default"
android:label="${appName}"
android:roundIcon="@drawable/ic_launcher_default"
android:supportsRtl="true"
android:theme="@style/AppCompactTheme">
<activity
android:name=".activity.SplashActivity"
android:screenOrientation="portrait"/>
.
.
.
</application>
</manifest>
答案 0 :(得分:0)
从applicationId "com.xx.aa"
中删除defaultConfig
。使用productFlavors
时无需在此处指定。
答案 1 :(得分:0)
我不知道您的确切目标是什么,以下任务将在启动前停止您的应用。
task stopApp(type: Exec) {
android.applicationVariants.all { variant ->
android.productFlavors.all { flavor ->
if (variant.flavorName == flavor.name) {
def applicationId = [variant.mergedFlavor.applicationId, flavor.applicationIdSuffix].findAll().join()
def command = ['adb', 'shell', 'am', 'force-stop', applicationId]
commandLine command
}
}
}
}
将此任务添加到您的Run Configuration
> Before launch
中。
或者简单地(如果可以的话)添加uninstallAll
任务。
答案 2 :(得分:0)
在清单中,您将“ com.xx.aa”指定为软件包。这可能会导致两个应用程序(aa和bb)之间出现问题。还要从defaultConfig中删除它。
我有一个具有多种口味的应用程序,它们都具有相同的清单软件包,但为了将它们全部安装在同一设备中,我更改了applicationIdSuffix参数,并且可以同时使用所有应用程序。