Когда я создаю свой проект, пытаясь объединить flavors wearApp и buildTypes с applicationIdSuffixes, я получаю следующее сообщение об ошибке:
Error:Execution failed for task ':app:handleFirstCustomerTestMicroApk'.
> The main and the micro apps do not have the same package name.
Из моего приложения /build.gradle:
buildTypes {
debug {
applicationIdSuffix '.debug'
debuggable true
embedMicroApp = true
}
customerTest {
applicationIdSuffix '.customertest'
debuggable true
embedMicroApp = true
}
release {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
minifyEnabled true
embedMicroApp = true
}
}
productFlavors {
first {
applicationId 'com.my.app.first'
}
second {
applicationId 'com.my.app.second'
}
third {
applicationId 'com.my.app.third'
}
}
dependencies {
firstWearApp project(path: ':wear', configuration: 'firstDebug')
firstWearApp project(path: ':wear', configuration: 'firstCustomerTest')
firstWearApp project(path: ':wear', configuration: 'firstRelease')
secondWearApp project(path: ':wear', configuration: 'secondDebug')
secondWearApp project(path: ':wear', configuration: 'secondCustomerTest')
secondWearApp project(path: ':wear', configuration: 'secondRelease')
thirdWearApp project(path: ':wear', configuration: 'thirdDebug')
thirdWearApp project(path: ':wear', configuration: 'thirdCustomerTest')
thirdWearApp project(path: ':wear', configuration: 'thirdRelease')
}
Из моего wear/build.gradle:
buildTypes {
debug {
applicationIdSuffix '.debug'
minifyEnabled false
}
customerTest {
applicationIdSuffix '.customertest'
minifyEnabled false
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
first {
applicationId 'com.my.app.first'
}
second {
applicationId 'com.my.app.second'
}
third {
applicationId 'com.my.app.third'
}
}
android {
publishNonDefault true
}
Я знаю из них, что <buildType>WearApp
возможно, но мне действительно нужно <flavor><BuildType>WearApp
(которые сейчас не кажутся возможными):
- Упаковка приложений для приложений для Android не соответствует вкусам
- Wear App и с настраиваемым типом сборки с applicationIdSuffix
- https://code.google.com/p/android/issues/detail?id=74658
Сохраняя все вышеперечисленные зависимости wearApp от типов, если я удалю appIdSuffixes, но затем он по-прежнему строит один из них apk per buildType независимо от того, какой тип buildType я выбираю в Android Studio, и мне действительно нужно приложение IdSuffixes.
У кого-нибудь есть обходное решение для этого? На сегодняшний день я добавляю и удаляю зависимости wearApp вручную каждый раз, когда мне нужно изменить свой тип buildType и/или вкус, и это не совсем то решение, с которым мне удобно в конечном итоге.
EDIT: сначала я этого не заметил, но по некоторым причинам варианты firstDebug, secondDebug и thirdDebug строят просто отлично со всеми 9 зависимостями wearApp в build.gradle. Сообщение об ошибке остается неизменным для firstCustomerTest, firstRelease, secondCustomerTest, secondRelease, thirdCustomerTest и thirdRelease. Все варианты скомпилируют 9 wearApps каждый раз, было бы аккуратно уменьшить это до 1.