Я запускаю Android Studio 2.0 Beta 3. У меня есть проект, который зависит от внешней библиотеки. Когда я создаю с помощью Android Studio, появляется следующее сообщение об ошибке:Ошибка сборки Android Studio: manifestMergerXXXX?
($my_project_path)/build/intermediates/manifest/tmp/manifestMerger354333932548019277.xml:17:9-36 Error:
Attribute [email protected] value=(false) from [debug] AndroidManifest.xml:17:9-36
is also present at [($library)] AndroidManifest.xml:12:9-35 value=(true)
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at manifestMerger354333932548019277.xml:7:5-9:19 to override
Error:Execution failed for task ':$(project):processDebugAndroidTestManifest'.
> java.lang.RuntimeException: Manifest merger failed : Attribute [email protected] value=(false) from [debug] AndroidManifest.xml:17:9-36
is also present at [($library)] AndroidManifest.xml:12:9-35 value=(true)
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at manifestMerger354333932548019277.xml:7:5-9:19 to override
Это очень странно. Android Studio предлагает мне отредактировать продукт промежуточного этапа сборки, чтобы завершить компиляцию? Кроме того, когда я смотрю на исходный файл AndroidManifest.xml, верхний уровень уже определяет атрибут «tools-replace» как «android: allowBackup». Короче говоря, я понятия не имею, почему я должен получать это сообщение. Кроме того, моя сборка отлично работает из командной строки. Какие-либо предложения?
EDIT на основе комментариев: Некоторые комментаторы отметили, что мне нужно следовать очень четким направлениям в сообщении об ошибке, только эти комментаторы отсутствуют, что сообщение об ошибке направляет меня на редактирование промежуточного продукта сборки.
Чтобы быть предельно ясным: продукт промежуточной сборки не является чем-то, что система сборки должна КОГДА-ЛИБО, направлять пользователя на изменение. Это по определению что-то для использования только системы построения. Его единственным дополнительным использованием является сохранение состояния, чтобы пользователь мог устранить неисправные сборки. Тот факт, что Android Studio говорит мне об изменении этого файла, свидетельствует о том, что что-то серьезно нарушено, как в Android Studio, так и, скорее всего, в моих сценариях конфигурации и/или сборки. Но что?
Для уточнения, здесь <application>
элемента из проекта, который включает в себя библиотеку:
<application
android:label="@string/app_name"
android:allowBackup="false"
tools:replace="android:allowBackup">
<...>
</application>
Так как вы можете видеть, я объявляющую сам элемент, Android Студия жалуется, именно так, как я я прошу. Кроме НЕ! Потому что Android Studio просит меня изменить слитый AndroidManifest.xml - ясно, что я не должен был делать, потому что это продукт сборки. Этот проект строится на всех машинах моих коллег, потому что они не обновлялись до последней версии Android Studio. Сейчас это на мне, и, честно говоря, я считаю, что лучше всего для меня - удалить Android Studio и начать все заново.
См. Правки выше. –
Это не проблема с андроид-студией. Я уверен, это похоже на конфликт Git, вам нужно разрешить конфликт, прежде чем продолжить.Ваша проблема в том, что в вашей зависимости от библиотеки указанному атрибуту присваивается значение true, но в вашем манифесте оно установлено в значение false, которое явно является конфликтом, который необходимо разрешить для слияния. – Dummy
Нет, не конфликт git. Ошибка возникает из файла, который создает граду в процессе сборки. –