Эта проблема должна решить мою другую проблему, когда мне нужно обновить поставщика содержимого дочерних библиотек: Использование типов сборки в библиотеках Gradle для запуска того же приложения, которое использует ContentProvider, на одном устройстве
У меня есть вариант продукта в корневом приложении, которое успешно меняет имя пакета, поэтому я могу развертывать разные версии приложения. Когда я пытаюсь добавить тот же вкус продукта в дочернюю библиотеку, сборка завершается сбоем, потому что корневое приложение не может загрузить класс Java, на который ссылается дочерняя библиотека, потому что теперь имя пакета изменилось? Я думал, что вкусы продуктов не влияют на структуру пакета классов Java?
Корневое приложение ATCApp.gradle
...
dependencies {
...
compile project(':libraries:FYC')
...
}
...
android
{
...
productFlavors
{
prod {
packageName "com.company.android"
}
qa {
packageName "com.company.android.qa"
}
}
}
Дочерняя библиотека FYC.gradle
...
android
{
...
productFlavors
{
prod {
resValue "string", "authority", "com.company.android.fyc.models.listing.listingprovider"
}
qa {
resValue "string", "authority", "com.company.android.qa.fyc.models.listing.listingprovider"
}
}
}
Добавление вышеуказанных вариантов продукта в дочернюю библиотеку FYC приводит к тому, что корневое приложение выдает ошибку:
/src/main/java/com/company/android/HomeBroadcastReceiver.java:7: пакет com.company.android.fyc.controllers не существует import com.company.android.fyc.controllers.FYCHomePagerActivity; сильный>
Спасибо за любую помощь!