Почему Android Studio сообщает «URI не зарегистрирован»? [закрыто]

161

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

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

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

Есть идеи, как решить эту проблему?

Xilconic
источник
9
Закрытие и повторное открытие Android Studio решило эту проблему для меня :)
Umair
1
Сделайте недействительным и перезапустите кеш, тогда он работает
thewhitetulip

Ответы:

150

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

Мазен Кассер
источник
2
Ах да, вы абсолютно правы. Ошибка, которую я сделал, состояла в том, что я открыл файл из <проекта root> \ <имя проекта> \ build \ res \ all \ debug \ layout (я думаю, что он открыт по умолчанию, и я привык работать сверху вниз) это объясняет путаницу). Вместо этого нужно действительно взглянуть на <проектный корень> \ <имя проекта> \ src \ main \ res \ layout.
Xilconic
у меня была такая же проблема для файла манифеста, что делать
Прасад
Спасибо!! Это прекрасно работает для меня ..
Винот Вино
1
Я столкнулся с той же проблемой, но мои пути были правильными. Это было наконец исправлено путём аннулирования / перезапуска. Просто аннулирование кэша не сработало. AUGH! :)
Стивен Смит
1
для меня аннулировать / перезапустить работал. спасибо @stevensmith
Абдул Самад
51

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

РЕДАКТИРОВАТЬ: Также проверьте, что у вас есть правильное имя файла. Я снова столкнулся с этой проблемой, добавив отладочный файл AndroidManifest.xml, но по ошибке назвал его AndroidManifest.xml.xml.

eliasbagley
источник
2
Это сработало для меня. Для тех, кто ищет, как переключить вариант сборки, он находится на самой левой панели AS и написан сбоку. Нажмите его, затем под ним «отладка» на самом деле выпадающий список.
Лемуэль
1
Для меня то же самое было правдой. Если вы смотрите на различные вкусовые макеты настроенного приложения, то на то, что загружается Android-студией, вы получите ошибку.
Neeraj Shukla
Это работает как шарм! спасибо
Вираг Брахм
Вы спасли мой день!
Ади
39

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

введите описание изображения здесь

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

<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>

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

VinceStyling
источник
2
@ Майкл Алан Хафф, большое спасибо за то, что научили меня.
VinceStyling
нет проблем :) счастливой укладки.
Майкл Алан Хафф
17

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

Regis_AG
источник
3
спас мне жизнь ... :)
bangkokguy
Это только помогает, пока я не попробую запустить приложение в следующий раз
AvielNiego
Invalidate и кэш рестарт , то он работает
thewhitetulip
8

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

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

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

Kulasekar
источник
6

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

  1. Перезагрузите свою андроид студию.
  2. Появится всплывающее окно для включения плагинов.
  3. нажмите на включить плагины, а затем нажмите на Okay.

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

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

Дальвиндер Сингх
источник
5

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

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

(Моя Slayout-landпапка была в моей layoutпапке)

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

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

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

androidtitan
источник
5

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

  • Перейдите в «Файл> Структура проекта> Модули»
  • Нажмите «Добавить (+) »
  • Нажмите «Android» и «Применить», а затем «ОК»
Маянк Радж
источник
4

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

Динеш Кумар
источник
3

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

Николас Шмидт Губбинс
источник
2

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

Settings > Plugins > Android Support
Дипали с.
источник
2

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

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

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

Махи
источник
1

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

Кристиан Трайна
источник
1

Для меня, оскорбительные файлы XML отсутствовали строки заголовка ...

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

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

Кларк Битва
источник
1

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

Манодж Гопал
источник
1
  • Перейдите в «Предпочтения> Языки и рамки> Схемы и DTDS»
  • Нажмите «Добавить (+)»
  • Нажмите «Применить», а затем «ОК»

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

Scarlett
источник
просто добавьте свой URL.
Скарлетт
1

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

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

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

  • удалить средний путь "TradeClient", как TradeClient / app / ...
  • затем File -> Invalidate Caches / Restart ...
zhangliang
источник
0

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

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

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

Саад Фарук
источник
0

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

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

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

Саймон
источник
0

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

Терри Рэй
источник
0

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

TomCobo
источник
0

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

user2697952
источник
0

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

<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>
Dand
источник
0

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

Международная система единиц СИ
источник
0

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

PAStheLoD
источник
0

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

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

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

V-SHY
источник
-3

Попробуйте установить плагин для трекера Android. Вы найдете это на студии.

Перезагрузите студию

Раджат Бхандари
источник