Dlaczego Android Studio zgłasza „URI nie jest zarejestrowany”? [Zamknięte]


161

Spróbowałem więc Android Studio, ponieważ bardzo lubię Resharper i zauważyłem, że IDE ma wbudowaną część swojej funkcjonalności. Po utworzeniu domyślnego nowego projektu dodałem nowy plik układu i chciałem zmienić istniejący domyślny przykładowy układ „Hello world”. Otrzymałem błąd „URI nie jest zarejestrowany” w następujących wierszach:

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

Nie zrobiłem jeszcze nic więcej w domyślnym wygenerowanym projekcie. Natknąłem się na inne pytanie, które wydaje się być powiązane ( nie zarejestrowano identyfikatora URI schematu projektu Intellij Android? ), Ale ignorowanie czegoś wydaje mi się dziwne. Rzeczywiście próbowałem, ale to powoduje RelativeLayout(i prawdopodobnie wszystkie inne rzeczy związane z Androidem) nie są już rozpoznawane (komunikat o błędzie: „Nie można znaleźć deklaracji elementu„ RelativeLayout ””).

Jakieś pomysły, jak rozwiązać ten problem?


9
Zamknięcie i ponowne otwarcie Android Studio rozwiązało ten problem dla mnie :)
Umair

1
Unieważnij i zrestartuj pamięć podręczną, a potem działa
thewhitetulip

Odpowiedzi:


150

Masz ten problem, ponieważ jesteś w złym miejscu docelowym! Prawidłowy katalog dla pliku zasobów układu musi znajdować się w „res-layout”, a nie „res-all-layout”


2
Ach tak, masz całkowitą rację. Błąd, który popełniłem, polegał na tym, że otworzyłem plik z <katalogu głównego projektu> \ <nazwa projektu> \ build \ res \ all \ debug \ layout (myślę, że jest on domyślnie otwarty i przyzwyczajony do pracy od góry do dołu) to wyjaśnia zamieszanie). Zamiast tego rzeczywiście należy spojrzeć na <Project root> \ <Project Name> \ src \ main \ res \ layout.
Xilconic

miałem ten sam problem z plikiem manifestu, co robić
Prasad

Dziękuję Ci!! U mnie działa świetnie…
Vinoth Vino,

1
Trafiłem na ten sam problem, ale moje ścieżki były prawidłowe. Ostatecznie został naprawiony przez unieważnienie / ponowne uruchomienie. Samo unieważnienie pamięci podręcznej nie zadziałało. AUGH! :)
steven smith

1
dla mnie unieważnienie / ponowne uruchomienie działało. dzięki @stevensmith
Abdul Samad

51

U mnie było tak, ponieważ używałem wariantu kompilacji do debugowania i wydania. Dodałem ręcznie nowe foldery src / debug / res / layout / some_layout.xml i nie rozpoznałem URI. Zmieniłem wariant kompilacji na wydanie, a następnie wróciłem do debugowania. To spowodowało, że Android Studio coś przeładowało, a błąd zniknął.

EDYCJA: Sprawdź również, czy masz poprawną nazwę pliku. Miałem ten problem ponownie, dodając debugowanie AndroidManifest.xml, ale omyłkowo nazwał go AndroidManifest.xml.xml.


2
To zadziałało dla mnie. Dla tych, którzy szukają sposobu zmiany wariantu kompilacji, znajduje się on w lewym panelu AS, napisany z boku. Kliknij go, a pod nim „debuguj” znajduje się w rzeczywistości menu.
lemuel

1
Dla mnie to samo było prawdą. Jeśli patrzysz na inny układ smakowy dostosowany do aplikacji, to co jest ładowane przez studio Android, pojawi się błąd.
Neeraj Shukla

To działa jak urok !! dzięki
Virag Brahme

Uratowałeś mój dzień !!
Adi

39

Używam Intellij IDEA, ale myślę, że będzie działać również w Android Studio, czy widzisz "Dziennik zdarzeń" w prawym dolnym rogu IDE, czy był taki komunikat " Wykryto strukturę Androida w projekcie Configure ", to znaczy, że powinien mieć konfigurację szkieletową. Jeśli tak, po prostu kliknij łącze do wiadomości.
W ten sam sposób możesz przejść do „ Plik> Struktura projektu> Moduły ”, a następnie dodać aspekt systemu Android.

wprowadź opis obrazu tutaj

Nawiasem mówiąc, jeśli chcę użyć niestandardowej przestrzeni nazw, tak jak ty, zapiszę identyfikator zasobu jako nazwę mojego pakietu, ponieważ definiuję atrybut pakietu AndroidManifest.xml elementu manifestu, poniżej jest mój kod.

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

Mam nadzieję, że to ci pomoże.


2
@Michael Alan Huff, bardzo dziękuję za to, że mnie nauczyłeś.
VinceStyling

nie ma problemu :) miłego układania.
Michael Alan Huff

17

Ten problem pojawił się u mnie nagle, bez powodu. Właśnie zamknąłem wszystkie karty w Android Studio i ponownie otworzyłem plik xml, który miał problemy. Problem rozwiązany! :)


3
uratował mi życie ... :)
bangkokguy

to pomaga tylko do następnego razu, gdy próbuję uruchomić aplikację
AvielNiego,

Unieważnij i zrestartuj pamięć podręczną, a potem działa
thewhitetulip

8

W Android Studio 3.1.2 ten błąd występuje z powodu nieprawidłowego sprawdzania poprawności pamięci podręcznej.,

Przejdź do folderu Project i usuń całą zawartość z folderu .idea

Spowoduje to usunięcie pamięci podręcznej, a ponowne załadowanie projektu spowoduje utworzenie nowego folderu pamięci podręcznej i sprawi, że będzie dobrze.,


6

To problemy z wtyczkami.

  1. Uruchom ponownie swoje studio Android.
  2. Pokaże się okienko pop umożliwiające włączenie wtyczek
  3. kliknij włącz wtyczki, a następnie kliknij OK.

wtedy automatycznie zrestartuje twoje studio i wszystko będzie dobrze.

mam nadzieję, że to zadziała.


5

Mój problem polegał na tym, że moje foldery miały następującą strukturę:

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

(Mój Slayout-landfolder był w moim layoutfolderze)

Zmieniłem strukturę na taką i u mnie zadziałało:

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

Mam nadzieję, że to pomoże!


5

Nie znam przyczyny tego błędu, ale gdzieś się o tym dowiedziałem i to rozwiązało mój problem.

  • Przejdź do „Plik> Struktura projektu> Moduły”
  • Kliknij „dodaj (+)
  • Kliknij „android” i „zastosuj”, a następnie „ok”

4

okazuje się, że edytowałem wersję DEBUG pliku xml, aby to naprawić, po prostu zamknij zakładkę z błędem i otwórz ją ponownie



2

Dla mnie Wtyczka Android Supportzostaje w jakiś sposób wyłączona. Włączenie wtyczek ponownie zadziałało.

Settings > Plugins > Android Support

2

Wybierz odpowiedni smak w wariantach budowania.

Jeśli przeglądasz określony plik pod Flavour1, wybierz ten smak w oknie BuildVariants.

Jeśli twoim IDE jest Android Studio (3.2.1 w chwili pisania tego tekstu), powinieneś znaleźć okno Build Variants w lewym dolnym rogu, wyrównane pionowo.


1

Czasami ten błąd jest skorelowany z innymi błędami w twoim manifeście. Sprawdź, czy brakuje jakichś zależności i czy wszystkie tagi są zamknięte. W moim przypadku usunąłem folder w folderze / res, przywróciłem go i ten błąd zniknął.


1

Dla mnie w szkodliwych plikach xml brakowało wiersza nagłówka ...

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

Dodanie tego naprawiło problem.


1

Zacząłem znowu to robić. W rzeczywistości działa teraz, aby dodać trochę śmieci do pliku build.gradle. Następnie spróbuj zsynchronizować. Gdy się nie powiedzie, usuń śmieci i zsynchronizuj ponownie. Po zindeksowaniu działa.


1
  • Przejdź do „Preferencje> Języki i struktury> Schematy i DTDS”
  • Kliknij „dodaj (+)”
  • Kliknij „Zastosuj”, a następnie „OK”

mam nadzieję, że to zadziała.


po prostu dodaj swój adres URL.
Scarlett

1

Dla mnie klonuję projekt z gitlab, jest spis treści:

TradeClient / TradeClient / aplikacja / ...

wtedy napotykam ten problem, rozwiązuję problem za pomocą poniższej metody:

  • usuń środkową ścieżkę „TradeClient”, jako TradeClient / app / ...
  • następnie Plik -> Unieważnij pamięci podręczne / Uruchom ponownie ...


0

Miałem ten problem teraz - utworzyłem nowy folder w folderze układu, który zawierałby cały plik XML związany z moją stroną główną mojej aplikacji, a następnie inny folder, który odnosiłby się do mojej strony „ustawień”, ponieważ chciałem uporządkować xml.

Jednak system Android rozpoznaje tylko folder układu dla plików XML, a nie folder układu / domu lub układu / ustawień, dlatego właśnie wyświetlał mi błąd.

Dzięki odpowiedzi Mazena Kassera, pomógł mi to rozgryźć.


0

Wpadłem na tę niedawną próbę migracji istniejącej aplikacji do Material Design. Wszystko, co musiałem zrobić, aby to naprawić, to zmienić wersję Compile SDK projektu. Plik | Ustawienia projektu. Wybierz aplikację i wybierz wersję Compile SDK dla wersji Lollipop lub nowszej.


0

Każde wymienione tutaj rozwiązanie pomogło mi. Opublikuję swój problem na wypadek, gdyby był pomocny dla kogoś. W moim przypadku błąd występował przy użyciu wiązania danych . Wygląda na to, że za pomocą powiązania danych XML tworzone są pośrednie. Jeśli wystąpi błąd podczas próby otwarcia, wyświetli się pośredni plik XML z tym „ niezarejestrowanym identyfikatorem URI ” zamiast otwierania właściwego pliku XML z błędem.


0

Miałem ten problem i dla mnie było to spowodowane tworzeniem i manipulowaniem plikami zasobów poza Android Studio. Postępowałem zgodnie z instrukcjami dotyczącymi tworzenia nowych plików zasobów i folderów za pośrednictwem Android Studio i rozwiązałem problem. Musisz utworzyć nowy katalog Resource File Not. Pozwoli ci to określić lub utworzyć katalog, jeśli tego potrzebujesz. Jeśli tworzysz katalogi dla układów dla różnych wersji, wprowadź informacje u góry, w tym nazwę pliku zasobów, który chcesz skopiować do nowego folderu, wybierz Wersja i wprowadź wersję Androida. Utworzy odpowiedni katalog z kopią twojego zasobu.


0

Kolejna sugestia, która była dla mnie rozwiązaniem: mam błąd w linii

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

w pliku values.xml, który został automatycznie wygenerowany podczas procesu kompilacji.

Zostało to rozwiązane przez dodanie androidprzedrostka w pliku 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>

musiał zostać zmieniony na

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

0

Co mi to naprawiło, o czym do tej pory nie widziałem - jeśli masz wiele „smaków”, upewnij się, że aktualnie wybrany „wariant kompilacji” odpowiada smakowi pliku układu, który próbujesz wyświetlić.


0

Każdy, kto otrzyma ten błąd zaraz po zaimportowaniu projektu, może mieć nieudany początkowy import / synchronizację stopni. Zwykle występuje z poważnymi błędami (migający wykrzyknik w prawym dolnym rogu). Dla mnie to była bardzo dziwna przyczyna (folder projektu był połączony symbolicznie): https://stackoverflow.com/a/52952148/44166


0

Napotkałem ten sam problem podczas otwierania Android React Native Project w Android Studio.

Główną przyczyną jest to, że otworzyłem folder główny projektu React Native zamiast folderu Android projektu React Native.

Ponowne otwarcie projektu w folderze Androida React Native Project rozwiązało mój problem.


-3

Spróbuj zainstalować wtyczkę śledzenia systemu Android. znajdziesz to w studio.

Uruchom ponownie studio

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.