В сообщении об ошибке говорится: «Имя записи« res / layout / test_toolbar.xml »столкнулось» при создании подписанного apk


17

Я обновил свою андроид студию с 3.5.x до 3.6 сегодня и получаю сообщение об ошибке при создании подписанного apk для варианта сборки, показывающего следующее сообщение : «Имя записи« res / layout / test_toolbar.xml » столкнулось. У меня нет макета с таким именем один во всем проекте. У меня есть пользовательский вариант сборки под названием « stage », и всякий раз, когда я пытаюсь создать подписанный apk, он всегда терпит неудачу. Я считаю, найти решение еще. Пожалуйста, помогите мне с этим вопросом. Спасибо

Обновление: та же проблема может возникнуть с этими следующими сообщениями (как я нашел в AS - 3.6.1 ). Так что не беспокойтесь о таких неизвестных и неразрешимых сообщениях. Пока я обнаружил два новых типа сообщений при создании подписанного apk:

  • Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided
  • Access Denied

Решение такое же. Иногда вам может понадобиться Invalidate Cache and Restartваша AS для этого. Дайте мне знать ваши выводы. Спасибо

Ответы:


16

Прежде чем читать решение ниже, пожалуйста, прочитайте мое обновление от 01.04.2020, проблема глубже и она есть в вашем коде.

У меня та же проблема после обновления 3.6.

* Быстрое решение: *

  1. удалить projectFolder \ build
  2. удалить projectFolder \ debug *
  3. удалить projectFolder \ release *
  4. удалить projectFolder \ app \ build
  5. удалить projectFolder \ app \ build \ debug *
  6. удалить projectFolder \ app \ build \ release *

Поэтому вам нужно удалить все каталоги сборки, отладки и выпуска.

Обратите внимание, что вы не сможете удалить целые каталоги отладки и выпуска , но вы можете удалить все их содержимое.

UPD:

Я думаю, что они исправили эту ошибку сегодня: введите описание изображения здесь

UPD 03.03.2020: К сожалению, ошибка не исправлена.

UPD 01.04.2020: (не шутка 1 апреля :))

Уже месяц я работал с разработчиками Android Studio, и сегодня мне сказали использовать jdk вместо jre, потому что это было из-за одной из глубоких ошибок в логах.

После установки jdk ( Файл-> Структура проекта- > Расположение SDK- > Расположение JDK ) вместо jre у меня появилось несколько других ошибок, которые не были показаны в «выводе сборки», поэтому я запускаю Анализ -> Проверить код и получаю ВОСЕМЬ ошибок такие как ссылка на неправильный идентификатор вида в макетах, ошибки с ориентацией (привет к tools:ignore="MissingDefaultResource") и ошибки в манифесте также с ориентацией: я прочитал, что это новое обновление в 3.6.1 - о ландшафте или портрете screenOrientation, быстро исправленное Studio с помощью этого: <activity tools:ignore="LockedOrientationActivity" />

Когда все ошибки были исправлены с помощью Analyze -> Inspect Code, я успешно сгенерировал подписанный APK с помощью jdk, а затем с помощью jre (только для тестирования).

Итак, в итоге, эта ошибка вызвана из-за глубоких ошибок, которые вы можете обнаружить только с помощью Inspect Codeинструмента.

Я думаю, что AS не будет думать, что это ошибка, я думаю, они сказали, что это новая функция для улучшения вашего кода. Также я думаю, что вы должны попытаться проверить свой код, даже не устанавливая jdk вместо jre.

Дополнительные рекомендации от службы поддержки AS:

Кстати, при экспорте releaseсборки мы также запускаем lintVitalнекоторые дополнительные проверки и отмечаем некоторые ошибки как fatal. Эта проверка стоит дорого, поэтому она не происходит в debugсборках


1
Большое спасибо. Я уже решил это. Вы уверены, что это стабильная версия (правда)?
Саадат

1
@ Саадат нет, я проверил сейчас - ошибка все еще там.
danyapd

Огромное спасибо. Я собирался обновить снова, ожидая исправления. @danyapd
Саадат

Я считаю, что я должен удалить projectFolder\app\[all flavor folders]тоже.
drmrbrewer

1
Спасибо, Build > Rebuild Projectисправил это для меня, в Android Studio 3.6.2.
gregn3

7

При создании apk проверьте папку назначения, из которой удалите output.json и app-debug.apk из папки отладки. Попробуйте построить то же самое после этого. AFAIK, это ошибка для Android Studio, надеюсь, они могут исправить это в ближайшее время :)


1
Спасибо за ваш ответ. Я уже сделал то же самое и решил свою проблему. :)
Саадат

1
Большое спасибо!! нашел это после 2,5 часов борьбы
Кишита Вария

Спасибо за это, работал как шарм
Брайан

4

Я удалил предыдущие результаты сборки для варианта сборки, включая файл APK. Вот что мне помогло


1
Я попытался удалить buildкаталог в целом, все еще получил ту же проблему. Можете ли вы уточнить, что вы сделали в полном объеме?
Пуспарадж

Вы удаляете каталог сборки в корне проекта и каталог app / build тоже? В моем проекте выходной путь apk изменен, и я просто удаляю предыдущий файл apk, где он был расположен.
Владислав Ватрушкин

1

Это происходит, когда вы использовали автоматическое viewBinding, Binding с использованием Kotlin или функцию viewBinding 3.6.

В случае, если вы добавляете файлы, элементы которых имеют одинаковые идентификаторы, ViewBinding сбивает с толку и создает такую ​​ошибку.

Позвольте мне помочь вам на примере класса Adapter, который имеет два файла макета, разделенных по представлению Тип:

import kotlinx.android.synthetic.main.frag_subscription_recommend.view.*


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
   return ViewHolder(
        LayoutInflater.from(parent.context).inflate(
            if (viewType == 1) {
                R.layout.frag_subscription_recommend
            } else
                R.layout.frag_subscription_common,
            parent,
            false
        )
    )
}

onBinding(){
  holder.itemView.id_button_submit.setOnClickListener {}
}

// который в случае путаницы, какой ресурс или макет полностью соответствуют требованию, bcoz имеют одинаковые идентификаторы кнопки. в случае, если вы должны использовать:

 onBinding(){
  holder.itemView.findViewById<Button>(R.id.id_button_submit).setOnClickListener {}
}

которые позволяют старую реализацию.

Дайте мне знать, если это работает на вашей стороне?


1
Извините, но проблема была в каталогах сборки, отладки и выпуска. в том числе выходной файл JSON. В любом случае, спасибо за ваш ответ
Саадат

1

У меня была та же ошибка после обновления Android Studio, и я исправляю проблему, только очистив проект (Build> Clean Project)! :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.