Почему отчет по Android Studio "URI не зарегистрирован"?

Итак, я дал Android Studio попробовать, потому что мне действительно нравится Resharper и заметил, что в IDE встроена часть их функций. Создав новый проект по умолчанию, я добавил новый файл макета и захотел изменить существующий пример по умолчанию "привет мир", и я получил ошибку "URI не зарегистрирован" в следующих строках:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

Я еще ничего не сделал для созданного по умолчанию проекта. Я столкнулся с другим вопросом, который, по-видимому, связан (URI Intellij Android URI не зарегистрирован?), но просто игнорируя что-то странное для меня. Я действительно пробовал, но это заставляет RelativeLayout (и, возможно, все другие связанные с Android вещи) больше не распознаваться (сообщение об ошибке: "Не удается найти объявление элемента RelativeLayout" ).

Любые идеи о том, как решить эту проблему?

Ответ 1

У вас возникла эта проблема, потому что вы ошибаетесь! Правильный каталог для файла ресурсов Layout должен находиться под "res-layout", а не "res-all-layout"

Ответ 2

Для меня это было потому, что я использовал вариант отладки и выпуска. Я добавил файлы папок src/debug/res/layout/some_layout.xml вручную, и он не распознал URI. Я переключил вариант сборки для выпуска, а затем вернулся к отладке. Это заставило Android Studio перезагрузить что-то, и ошибка исчезла.

EDIT: Также проверьте, что у вас есть правильное имя файла. У меня была эта проблема снова, добавив отладчик AndroidManifest.xml, но по ошибке назвал его AndroidManifest.xml.xml.

Ответ 3

Я использую Intellij IDEA, но я думаю, что он также будет работать в Android Studio, вы можете увидеть "Журнал событий" в правом нижнем углу IDE, было ли у него какое-то сообщение вроде этого " Android-инфраструктура обнаружена в проекте Настроить", это означает, что у вас должна быть конфигурация фреймворка. Если да, просто следуйте ссылке.
Таким же образом вы можете перейти к " Файл > Структура проектa > Модули", а затем добавить фасет Android.

enter image description here

Кстати, если я хочу использовать настроенное пространство имен, как и вы, я напишу идентификатор ресурса в качестве имени моего пакета, поскольку я определяю атрибут пакета AndroidManifest.xml элемента манифеста, ниже - мой код.

<manifest package="com.my.name.android">
    ...
</manifest>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/apk/res/com.my.name.android">
</RelativeLayout>

Надеюсь, это поможет вам.

Ответ 4

Эта проблема внезапно появилась для меня, без всякой причины. Я просто закрыл все вкладки в Android Studio и снова открыл файл xml, у которого были проблемы. Задача решена!:)

Ответ 5

В Android Studio 3.1.2 эта ошибка возникает из-за неправильной проверки кеш-памяти.,

Перейдите в папку Project и удалите все содержимое в папке .idea.

Это приведет к удалению кеш-памяти, а перезагрузка проекта создаст новую папку кеш-памяти и сделает ее полезной.,

Ответ 6

У него проблемы с плагинами.

  • Перезапустите свою студию Android.
  • Появится всплывающее окно для включения плагинов
  • нажмите, чтобы включить плагины, а затем нажмите "ОК".

то он автоматически перезапустит вашу студию, и все будет хорошо.

надеюсь, что это сработает.

Ответ 7

Моя проблема заключалась в том, что мои папки были структурированы как:

MyProject/ res/ layout/ main.xml layout-land/ main.xml

(Моя папка Slayout-land находилась в папке layout)

Я изменил структуру на это, и это сработало для меня:

MyProject/ res/ layout/ main.xml layout-land/ main.xml

Я надеюсь, что это поможет!

Ответ 8

Не знаю причины этой ошибки, но я узнал об этом где-то и решил мою проблему.

  • Перейдите в раздел "Файл > Структура проектa > Модули"
  • Нажмите "добавить (+)"
  • Нажмите "android" и "apply", а затем "ok"

Ответ 9

Оказывается, я редактировал версию xml для DEBUG, чтобы исправить ее, просто закройте вкладку с ошибкой и снова откройте ее.

Ответ 10

У меня была такая же ошибка. Я решил это, снова импортировав проект в студию Android.

Ответ 11

Для меня плагин Android Support как-то отключен. Включение плагинов снова сработало для меня.

Settings > Plugins > Android Support

Ответ 12

Выберите подходящий вкус в Build Variants.

Если вы просматриваете определенный файл в разделе Flavour1, выберите этот вариант в окне BuildVariants.

Если вашей IDE является Android Studio (3.2.1 на момент написания этой статьи), вы должны найти окно Build Variants в левом нижнем углу, выровненное по вертикали.

Ответ 13

Иногда эта ошибка коррелирует с другими ошибками в вашем манифесте. Проверьте, есть ли какие-то недостающие зависимости и все ли теги закрыты. В моем случае я удалил папку в папке /res, я ее восстановил и эта ошибка исчезла.

Ответ 14

Для меня, в файлах с нарушением xml отсутствует строка заголовка...

<?xml version="1.0" encoding="utf-8"?>

Добавление этого исправленного.

Ответ 15

Начну с того, что вы снова это сделали, теперь на самом деле работает, чтобы добавить мусор внутри build.gradle. Затем попробуйте и синхронизируйте. Когда он не удается удалить мусор и повторно синхронизировать. После индексирования он работает.

Ответ 16

  • Перейдите в раздел "Настройки > Языки и схемы > Схемы и DTDS"
  • Нажмите "Добавить (+)"
  • Нажмите "применить", а затем "ok"

надеюсь, что это сработает.

Ответ 17

Для меня я отсутствовал compile 'com.android.support:cardview-v7:25.0.1' в файле build.gradle(Module)

Ответ 18

Для меня, я клонирую проект из gitlab, есть оглавление:

TradeClient/TradeClient/приложение/...

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

  • удалить средний путь "TradeClient", как TradeClient/app/...
  • затем File → Invalidate Caches/Restart...

Ответ 19

Новая система сборки в Android Studio создает папку build. Проверки кода проверяются в этой папке, а также в папке gradle. Эти папки следует игнорировать при проверке кода.

Я поднял проблему с командой Android Studio по адресу:

https://code.google.com/p/android/issues/detail?id=56415

Ответ 20

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

Тем не менее, android распознает только папку макета для xmls, а не папку layout/home или layout/settings, поэтому он дал мне ошибку.

Благодаря ответу Мазена Кассера он помог мне разобраться в этом.

Ответ 21

В последнее время вы пытаетесь перенести существующее приложение в материальный проект. Все, что мне нужно было сделать, чтобы исправить это, было изменение проекта Compile SDK Version. Файл | Настройки проекта. Выберите приложение и выберите версию SDK компиляции для Lollipop или выше.

Ответ 22

Любое решение, упомянутое здесь, помогло мне. Я отправлю свою проблему на всякий случай, полезен для всех. В моем случае ошибка происходила с использованием привязки данных. Похоже, что с использованием связывания данных xmls промежуточных элементов создаются. Если есть ошибка при попытке открыть ошибку, вы увидите промежуточный xml с этим " URI, не зарегистрированным", вместо того, чтобы открывать правый xml с ошибкой.

Ответ 23

В течение большей части времени он будет решен проектом Rebuild Project

Ответ 24

Для меня я поместил xml файл в папку значений вручную. Тогда проблема показывает. Я также заметил, что имя файла xml и имя массива в его дате были одинаковыми. Итак, я переименовал имя файла xml и перезапустил студию Android.

Проблема ушла!

Ответ 25

У меня была эта проблема, и для меня это было связано с созданием и управлением файлами ресурсов за пределами Android Studio. Я выполнил инструкции по созданию новых файлов и папок ресурсов через Android Studio и решил проблему. Вам нужно создать новый каталог файлов ресурсов. Это позволит вам указать или создать каталог для вас, если вам это нужно. Если вы создаете каталоги для макетов для разных версий, введите информацию вверху, включая имя файла ресурсов, который вы хотите скопировать, в новую папку и выберите "Версия" и введите версию Android. Он создаст соответствующий каталог с копией вашего ресурса.

Ответ 26

Другое предложение, которое было для меня решением: Я получил ошибку в строке

<resources xmlns:ns1="http://schemas.android.com/tools" xmlns:ns2="urn:oasis:names:tc:xliff:document:1.2">

в файле values.xml, который был автоматически сгенерирован во время процесса сборки.

Он был решен путем добавления префикса android в файле styles.xml.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="textColorPrimary">@color/textColorPrimary</item>
        <item name="colorBackground">@color/colorPrimaryDark</item>
    </style>

нужно было изменить на

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:colorBackground">@color/colorPrimaryDark</item>
    </style>

Ответ 27

Что исправило для меня то, что я до сих пор не упомянул - если у вас есть несколько вариантов, убедитесь, что выбранный в данный момент вариант сборки соответствует варианту файла макета, который вы пытаетесь просмотреть.

Ответ 28

Любой, кто получит эту ошибку сразу после импорта проекта, может столкнуться с неудачным начальным импортом/синхронизацией gradle. Обычно это встречается с серьезными ошибками (мигающий восклицательный знак в правом нижнем углу). Для меня это была очень странная причина (папка проекта была символической): fooobar.com/questions/16920454/...

Ответ 29

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

Ответ 30

Я столкнулся с той же проблемой при открытии Android-проекта React Native в Android Studio.

Основная причина в том, что я открыл корневую папку React Native Project вместо папки Android в React Native Project.

Повторное открытие проекта в папке Android React Native Project решило мою проблему.