Я установил Gradle, чтобы добавить суффикс имени пакета в мое приложение для отладки, чтобы у меня была версия выпуска, которую я использую и отлаживаю версию на одном телефоне. Я ссылался на это: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types
Мой файл build.gradle выглядит следующим образом:
...
android
{
...
buildTypes
{
debug
{
packageNameSuffix ".debug"
versionNameSuffix " debug"
}
}
}
Все работает нормально, пока я не начну использовать ContentProvider в своем приложении. Я получаю:
Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
Я понимаю, что это происходит из-за того, что два приложения (выпуск и отладка) регистрируют один и тот же авторитет ContentProvider.
Я вижу одну возможность решить эту проблему. Если я правильно понимаю, вы должны указать разные файлы, которые будут использоваться при создании. Затем я должен иметь возможность устанавливать различные полномочия в разных файлах ресурсов (и из Manifest set authority в качестве строкового ресурса) и сообщить Gradle использовать другой ресурс для сборки отладки. Это возможно? Если да, то любые подсказки о том, как достичь этого, были бы замечательными!
Или, возможно, можно напрямую модифицировать манифест с помощью Gradle? Любое другое решение о том, как запускать такое приложение с ContentProvider на одном устройстве, всегда приветствуется.