Компиляция ресурсов Android не удалась в v3.2
Поэтому я обновил свою Android-студию до версии 3.2. Когда я попытался скомпилировать проект, сборка завершится неудачно. Ниже приведена ошибка:
Android resource compilation failed
Output: C:\Users\Ashish\AndroidStudioProjects\StartUp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:900: error: <item> inner element must either be a resource reference or empty.
Command: C:\Users\Ashish\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.0-4818971-windows.jar\7f1fbe9171e916e5044000cd76b749c8\aapt2-3.2.0-4818971-windows\aapt2.exe compile --legacy \
-o \
C:\Users\Ashish\AndroidStudioProjects\StartUp\app\build\intermediates\res\merged\debug \
C:\Users\Ashish\AndroidStudioProjects\StartUp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml
Daemon: AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
Пожалуйста, сообщите, требуется ли дополнительная информация. Любая помощь будет оценена.
Ответы
Ответ 1
Сегодня я столкнулся с этой проблемой после обновления градиента от 3.1.4
до 3.2.0
. Я не знаю, почему, но сборка начала бросать это исключение. я удалил папку build
и удалил папку caches
градиента, но ничего не работал, поэтому я посмотрел на объединенные values.xml
и выяснил, что мой ids.xml
определял неверный идентификатор, который был объединен с values.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="downloading_package" type="id">Baixando pacote de sincronização</item>
</resources>
И, видимо, это работало до обновления... для моего случая я удалил файл ids.xml
(это было бесполезно в проекте)
Хотел бы я знать, почему перед обновлением все работало
Ответ 2
<item>
в values.xml
в строке 900
... может быть id
типа ресурса.
Правильный синтаксис будет (как указано в сообщении об ошибке):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="id_name" />
</resources>
см. документацию.
Ответ 3
Я только что закончил эту проблему несколько минут назад, попробуйте изменить или удалить id.xml, если вы считаете, что у вас ее нет, попробуйте найти в другом модуле приложения. Я меняю свой ресурс значений из <item name="header_view" type="id">header_view</item>
на <item name="header_view" type="id"/>
и это сработало для меня.
Ответ 4
Я также встречаюсь с проблемой, вам просто нужно найти, где значения и обновить ее от <item type="id" name="id_name" >id_name</item>
до <item type="id" name="id_name"/>
, теперь все в порядке.
Ответ 5
в вашей градиенте построения (Project: name) сделать это так
classpath 'com.android.tools.build:gradle:3.+'
затем перестройте свой проект.. после этого он покажет сообщение, чтобы обновить ваш град от 4,6 до 4,10
Ответ 6
В моем случае
<?xml version="1.0" encoding="utf-8"?>
повторяется дважды в XML. Убедитесь, что он должен быть один на файл в верхней части XML.
Ответ 7
Вот что сработало для меня:
В моем файле build.gradle
> dependencies
я реализовывал более новую версию библиотеки appcompat
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:support-v4:21.0.3'
implementation 'com.android.support:appcompat-v7:21.0.3'
implementation 'androidx.appcompat:appcompat:1.0.2'}
После комментирования //implementation 'androidx.appcompat:appcompat:1.0.2'
работало нормально. Я бы предложил, даже если это другая библиотека, пожалуйста, проверьте версию, которую вы используете.