Por que o Android Studio está relatando "URI não está registrado"? [fechadas]

160

Então, experimentei o Android Studio, porque realmente gosto do Resharper e notei que o IDE tinha algumas de suas funcionalidades incorporadas. Depois de criar um novo projeto padrão, adicionei um novo arquivo de layout e desejei alterar o layout de exemplo padrão 'olá mundo' existente e recebi o erro "O URI não está registrado" nas seguintes linhas:

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

Ainda não fiz mais nada para o projeto gerado padrão. Eu me deparei com outra pergunta que parece estar relacionada (o URI do esquema do projeto Intellij Android não está registrado? ), Mas apenas ignorar algo parece estranho para mim. Na verdade, eu tentei, mas isso faz com que RelativeLayout(e provavelmente todas as outras coisas relacionadas ao Android) não sejam mais reconhecidas (mensagem de erro: "Não é possível encontrar a declaração do elemento 'RelativeLayout'").

Alguma idéia de como resolver esse problema?

Xilconic
fonte
9
Fechar e reabrir Android Estúdio resolvido este problema para mim :)
Umair
1
Invalidar e cache de reiniciar, em seguida, ele funciona
thewhitetulip

Respostas:

149

Você está tendo esse problema porque está no destino errado! O diretório correto para o arquivo de recurso Layout deve estar em "res-layout" e não "res-all-layout"

Mazen Kasser
fonte
2
Ah sim, você está absolutamente certo. O erro que cometi foi que eu abri o arquivo em <raiz do projeto> \ <nome do projeto> \ build \ res \ all \ debug \ layout (ele está aberto por padrão, eu acho, e estou acostumado a trabalhar de cima para baixo, acho) isso explica a confusão). Em vez disso, deve-se realmente olhar para <raiz do projeto> \ <nome do projeto> \ src \ main \ res \ layout.
Xilconic
i teve mesmo problema de arquivo de manifesto o que fazer
Prasad
Obrigado!! Funciona muito bem para mim ..
Vinoth Vino
1
Encontrei o mesmo problema, mas meus caminhos estavam corretos. Finalmente, foi corrigido por invalidar / reiniciar. Apenas invalidar o cache não funcionou. AUGH! :)
Steven Smith
1
para mim invalidar / reiniciar funcionou. Obrigado @stevensmith
Abdul Samad
51

Para mim, isso foi porque eu estava usando uma variante de compilação de depuração e lançamento. Adicionei o novo arquivo src / debug / res / layout / some_layout.xml de pastas manualmente e ele não reconheceu o URI. Mudei a variante de compilação para lançamento e, em seguida, voltei a depurar. Isso fez com que o Android Studio recarregasse algo, e o erro desapareceu.

EDIT: Verifique também se você tem o nome de arquivo correto. Eu tive esse problema novamente adicionando uma depuração AndroidManifest.xml, mas por engano o nomeie AndroidManifest.xml.xml.

eliasbagley
fonte
2
Isso funcionou para mim. Para quem procura como alternar a variante de compilação, está no painel mais à esquerda do AS, escrito de lado. Clique nele e, em baixo dele, "debug" é realmente uma lista suspensa.
Lemuel
1
Para mim, o mesmo era verdade. Se você estiver olhando um layout de sabor diferente do personalizado do aplicativo, o que é carregado pelo Android studio, você receberá um erro.
Neeraj Shukla
Isso funciona como um encanto !! obrigado
Virag Brahme
Você salvou o meu dia !!
Adi
39

Eu uso o Intellij IDEA, mas acho que ele também funcionará no Android Studio. Você pode ver o "Log de eventos" no canto inferior direito do IDE, alguma mensagem como "A estrutura do Android foi detectada no projeto Configure ", significa que você deve ter uma configuração de estrutura. Nesse caso, basta seguir o link da mensagem.
Da mesma forma, você pode ir para " Arquivo> Estrutura do projeto> Módulos " e adicionar uma faceta do Android.

insira a descrição da imagem aqui

a propósito, se eu quiser usar um espaço para nome personalizado como você, escreverei o identificador do recurso como o nome do meu pacote, ao definir o atributo do pacote AndroidManifest.xml do elemento manifest, abaixo está o meu código.

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

Espero que isso ajude você.

VinceStyling
fonte
2
@ Michael Alan Huff, muito obrigado por me ensinar.
VinceStyling
não há problema :) empilhamento feliz.
quer
17

Este problema apareceu de repente para mim, sem qualquer motivo. Acabei de fechar todas as guias do Android Studio e reabri o arquivo xml que apresentava problemas. Problema resolvido! :)

Regis_AG
fonte
3
salvou a minha vida ... :)
bangkokguy
isso é só ajuda até a próxima vez que eu estou tring para executar o aplicativo
AvielNiego
Invalidar e cache de reiniciar, em seguida, ele funciona
thewhitetulip
8

No Android Studio 3.1.2, este erro ocorre devido à validação incorreta da memória cache.,

Vá para a pasta Projeto e exclua todo o conteúdo da pasta .idea

Isso excluirá a memória cache e recarregar o projeto criará uma nova pasta de memória cache e facilitará o processo.,

Kulasekar
fonte
6

É um problemas de plugins.

  1. Reinicie o seu estúdio android.
  2. Ele mostrará uma janela pop para ativar plugins
  3. clique em ativar plugins e clique em OK.

Em seguida, ele reiniciará automaticamente o seu estúdio e o funcionamento será bom.

espero que funcione.

Dalvinder Singh
fonte
5

Meu problema era que minhas pastas estavam estruturadas da seguinte maneira:

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

(Minha Slayout-landpasta estava na minha layoutpasta)

Mudei a estrutura para isso e funcionou para mim:

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

Eu espero que isso ajude!

androidtitan
fonte
5

Não sei a razão por trás desse erro, mas descobri isso em algum lugar e resolveu o meu problema.

  • Vá para "Arquivo> Estrutura do projeto> Módulos"
  • Clique em "adicionar (+) "
  • Clique em "android" e "aplicar" e depois em "ok"
Mayank Raj
fonte
4

Acontece que eu estava editando a versão DEBUG do xml, para corrigi-lo, basta fechar a guia que está com o erro e reabri-la

Dinesh Kumar
fonte
3

eu tive o mesmo erro. Eu o resolvi importando o projeto novamente para o estúdio android.

Nicolás Schmidt Gubbins
fonte
2

Para mim, o plugin Android Supportfica desativado de alguma forma. A ativação de plug-ins funcionou novamente para mim.

Settings > Plugins > Android Support
Dipali s.
fonte
2

Selecione o sabor apropriado em Variantes de construção.

Se você estiver visualizando um arquivo específico no Flavour1, selecione esse tipo na janela BuildVariants.

Se o seu IDE é o Android Studio (3.2.1 até o momento da redação deste documento), você deve encontrar a janela Build Variants no canto inferior esquerdo, alinhada verticalmente.

Mahi
fonte
1

Às vezes, esse erro está correlacionado com outros erros no seu manifesto. Verifique se há algumas dependências ausentes e se todas as tags estão fechadas. No meu caso, excluí uma pasta na pasta / res, restaurei-a e esse erro desapareceu.

Cristian Traìna
fonte
1

Para mim, os arquivos xml ofensivos estavam faltando na linha de cabeçalho ...

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

Adicionando isso corrigido.

Clark Battle
fonte
1

Começando a receber isso novamente, o que realmente funciona agora é adicionar um pouco de lixo no build.gradle. Depois tente sincronizar. Quando falhar, remova o lixo e sincronize novamente. Após a indexação, ele funciona.

Manoj Gopal
fonte
1
  • Vá para "Preferências> Idiomas e estruturas> Esquemas e DTDS"
  • Clique em "adicionar (+)"
  • Clique em "aplicar" e depois em "ok"

espero que funcione.

Scarlett
fonte
basta adicionar seu URL.
Scarlett
1

Para mim, clono um projeto do gitlab, existe um sumário:

TradeClient / TradeClient / app / ...

então eu encontro esse problema, eu resolvo o problema pelo método abaixo:

  • remova o caminho do meio "TradeClient", como TradeClient / app / ...
  • em Arquivo -> invalidar caches / reiniciar ...
zhangliang
fonte
0

O novo sistema de compilação no Android Studio cria uma buildpasta. A inspeção de código vomita nesta pasta, bem como ogradle pasta. Essas pastas devem ser ignoradas proativamente ao executar a inspeção de código.

Eu levantei um problema com a equipe do Android Studio em:

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

Saad Farooq
fonte
0

Eu estava com esse problema agora - criei uma nova pasta na pasta de layout, que conteria todo o xml relacionado à minha página "inicial" do meu aplicativo e, em seguida, outra pasta que se relacionaria à minha página "configurações", como eu queria organizar xml.

No entanto, o Android reconhece apenas a pasta de layout para xmls, não a pasta layout / home ou layout / settings, por isso foi o erro.

Graças à resposta de Mazen Kasser, ele me ajudou a descobrir isso.

Simon
fonte
0

Deparei com isso recentemente tentando migrar um aplicativo existente para o design de materiais. Tudo o que tive que fazer para corrigi-lo foi alterar a versão do SDK do projeto. Arquivo | Configurações do projeto. Selecione o aplicativo e escolha uma versão do Compile SDK para Lollipop ou superior.

Terry Ray
fonte
0

Qualquer solução mencionada aqui me ajudou. Vou postar o meu problema, caso seja útil para alguém. No meu caso, o erro estava acontecendo usando a ligação de dados . Parece que são criados os intermediários xmls de ligação de dados. Se houver um erro ao tentar abrir, o erro mostrará o xml intermediário com este " URI não registrado " em vez de abrir o xml correto com o erro.

TomCobo
fonte
0

Eu tive esse problema e, para mim, foi devido à criação e manipulação de arquivos de recursos fora do Android Studio. Segui as instruções sobre como criar novos arquivos e pastas de recursos através do Android Studio e resolvi o problema. Você precisa criar um novo diretório de arquivo de recursos não. Isso permitirá que você especifique ou crie um diretório para você, se necessário. Se você estiver criando diretórios para layouts para diferentes versões, digite as informações na parte superior, incluindo o nome do arquivo de recurso que deseja copiar para a nova pasta, selecione Versão e digite a versão do Android. Ele criará o diretório apropriado com uma cópia do seu recurso.

user2697952
fonte
0

Outra sugestão, que foi a solução para mim: recebi o erro na linha

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

no arquivo values.xml que foi gerado automaticamente durante o processo de construção.

Foi resolvido adicionando o androidprefixo no arquivo 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>

teve que ser alterado para

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

O que foi corrigido para mim que eu não vi mencionado até agora - se você tiver vários 'sabores', verifique se a 'variante de compilação' atualmente selecionada corresponde ao sabor do arquivo de layout que você está tentando visualizar.

Si.
fonte
0

Qualquer pessoa que receba esse erro logo após a importação do projeto pode estar atingindo uma importação / sincronização inicial incorreta do gradle. Geralmente é encontrado com erros graves (ponto de exclamação piscando no canto inferior direito). Para mim, essa foi a causa muito estranha (a pasta do projeto foi simbolizada): https://stackoverflow.com/a/52952148/44166

PAStheLoD
fonte
0

Encontrei o mesmo problema ao abrir o Android React Native Project no Android Studio.

A causa raiz é que eu abri a pasta raiz do React Native Project em vez da pasta android do React Native Project.

Reabrir o projeto na pasta android do React Native Project resolveu meu problema.

V-SHY
fonte
-3

Tente instalar o plug-in rastreador Android. você o encontrará no estúdio.

Reinicie o estúdio

Rajat Bhandari
fonte