У меня странный вопрос. Я уже нашел решение этой проблемы, но мне любопытно, ПОЧЕМУ это не сработало, когда я вручную попытался создать папки ресурсов аромата.
Итак, я хотел добавить новый Flavor в существующий проект Android, который уже включал несколько вариантов. Я вошел в файл уровня приложения build.gradle и добавил новый вариант. В этом примере я добавляю Flavor_Two
:
defaultConfig {
applicationId "com.fancyapp.APP_NAME"
}
flavorDimensions "client"
productFlavors {
Flavor_One {
applicationId 'com.fancyapp.one'
dimension "client"
}
Flavor_Two {
applicationId 'com.fancyapp.two'
dimension "client"
}
}
Затем я вручную вошел в свой файловый менеджер и создал папки и файлы ресурсов:
"/app/src/Flavor_Two/res/values/strings.xml"
"/app/src/Flavor_Two/res/mimap-hdpi/icon.png"
При создании аромата он не использует активы Flavor_Two, а вместо этого использует значения по умолчанию, которые com.fancyapp.APP_NAME
не com.fancyapp.two
. Приложение аварийно завершает работу, поскольку оно также ищет локальную базу данных по PackageName , которое должно быть com.fancyapp.two
, но вместо этого находит com.fancyapp.APP_NAME
.
Я выяснил, удалил ли я созданную вручную папку Flavor_Two
, и вместо этого прошел через меню Android Studio "File > New > Android Resource Directory"
и выбрал Flavor_Two
в качестве Source Set
и Values
в качестве Resource Type
, который создал "/app/src/Flavor_Two/res/values"
папка и родительские папки. Это были те же самые имена папок, которые я делал ранее. Затем я скопировал файл strings.xml
. Я только должен был сделать начальные папки через меню Android Studio; я мог бы скопировать папку «mimap-hdpi», которую я ранее использовал, и аромат будет создан правильно.
Мой вопрос такой:
ПОЧЕМУ Android Studio и Gradle не видят мои созданные вручную папки, а ЧТО еще делает, чтобы папка через меню делала то, что мне нужно было бы сделать, если бы я хотел сделать все вручную в будущем.
Спасибо, если у кого-то есть идеи.
Версия Android Studio: 3.1.3
Версия сборки Gradle: 3.1.3
Версия Buildtools: 27.0.3
Версия скомпилированного SDK: 23
ОС: Windows 10