Perché Android Studio riporta "URI non registrato"? [chiuso]


161

Quindi ho provato Android Studio, perché mi piace molto Resharper e ho notato che l'IDE aveva alcune delle sue funzionalità integrate. Dopo aver creato un nuovo progetto predefinito, ho aggiunto un nuovo file di layout e volevo modificare il layout di esempio predefinito "ciao mondo" e ho ricevuto un errore "URI non registrato" sulle seguenti righe:

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

Non ho ancora fatto altro per il progetto generato di default. Mi sono imbattuto in un'altra domanda che sembra essere correlata ( URI dello schema del progetto Android Intellij non registrato? ), Ma ignorare qualcosa mi sembra strano. In realtà l'ho provato, ma questo fa sì che RelativeLayout(e probabilmente tutte le altre cose relative ad Android) non vengano più riconosciute (messaggio di errore: "Impossibile trovare la dichiarazione dell'elemento 'RelativeLayout'").

Qualche idea su come risolvere questo problema?


9
La chiusura e la riapertura di Android Studio hanno risolto questo problema per me :)
Umair,

1
Invalida e riavvia la cache, quindi funziona
thewhitetulip

Risposte:


150

Stai riscontrando questo problema perché sei nella destinazione sbagliata! La directory corretta per il file di risorse di layout deve essere in "res-layout" e non "res-all-layout"


2
Ah sì, hai assolutamente ragione. L'errore che ho fatto è stato quello di aver aperto il file da <project root> \ <nome progetto> \ build \ res \ all \ debug \ layout (è aperto di default penso, ed essendo abituato a lavorare dall'alto verso il basso immagino questo spiega la confusione). Invece, si dovrebbe davvero guardare <root del progetto> \ <nome del progetto> \ src \ main \ res \ layout.
Xilconic,

ho avuto lo stesso problema per manifest file cosa fare
Prasad

Grazie!! Funziona benissimo per me ..
Vinoth Vino

1
Ho riscontrato lo stesso problema ma i miei percorsi erano corretti. È stato infine risolto da invalidate / restart. Il solo invalidamento della cache non ha funzionato. AUGH! :)
Steven Smith

1
per me invalidare / riavviare ha funzionato. grazie @stevensmith
Abdul Samad,

51

Per me questo è stato perché stavo usando una variante di debug e rilascio build. Ho aggiunto manualmente le nuove cartelle src / debug / res / layout / some_layout.xml e non ha riconosciuto l'URI. Ho cambiato la versione di build per rilasciare, e poi di nuovo al debug. Ciò ha causato ad Android Studio di ricaricare qualcosa e l'errore è scomparso.

EDIT: controlla anche di avere il nome file corretto. Ho riscontrato nuovamente questo problema aggiungendo un AndroidManifest.xml di debug, ma erroneamente chiamato AndroidManifest.xml.xml.


2
Questo ha funzionato per me. Per coloro che cercano come cambiare la variante di build, si trova nel riquadro più a sinistra di AS, scritto lateralmente. Fai clic su di esso, quindi sotto di esso "debug" è in realtà un menu a discesa.
lemuel

1
Per me lo stesso era vero. Se stai osservando un diverso layout dell'app personalizzato, quindi ciò che viene caricato da Android Studio, otterrai un errore.
Neeraj Shukla,

Funziona come un fascino !! grazie
Virag Brahme,

Mi hai salvato la giornata !!
Adi,

39

Uso Intellij IDEA ma penso che funzionerà anche in Android Studio, riesci a vedere il "Registro eventi" nell'angolo in basso a destra IDE, hai avuto un messaggio del tipo "Il framework Android viene rilevato nel progetto Configura ", significa che tu dovrebbe avere una configurazione del framework. In tal caso, basta seguire il collegamento al messaggio.
Allo stesso modo, puoi andare su " File> Struttura del progetto> Moduli ", quindi aggiungere un aspetto Android.

inserisci qui la descrizione dell'immagine

a proposito, se voglio usare uno spazio dei nomi personalizzato come te, scriverò l'identificatore di risorsa come nome del mio pacchetto mentre definisco l'attributo del pacchetto AndroidManifest.xml dell'elemento manifest, sotto è il mio codice.

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

Spero che questo ti aiuti.


2
@Michael Alan Huff, grazie mille per avermi insegnato.
VinceStyling,

nessun problema :) buon accatastamento.
Michael Alan Huff,

17

Questo problema è apparso all'improvviso per me, senza alcun motivo. Ho appena chiuso tutte le schede in Android Studio e ho riaperto il file XML che ha avuto problemi. Problema risolto! :)


3
mi ha salvato la vita ... :)
bangkokguy l'

questo aiuta solo fino alla prossima volta che cerco di eseguire l'app
AvielNiego,

Invalida e riavvia la cache, quindi funziona
thewhitetulip

8

In Android Studio 3.1.2 questo errore si verifica a causa di una convalida errata della memoria cache.,

Vai alla cartella Progetto ed elimina tutti i contenuti nella cartella .idea

Questo eliminerà la memoria cache e ricaricando il progetto creerà una nuova cartella di memoria cache e lo farà andare bene.,


6

È un problema con i plugin.

  1. Riavvia il tuo studio Android.
  2. Mostrerà una finestra pop per abilitare i plugin
  3. fai clic su abilita plug-in e quindi fai clic su OK.

quindi riavvierà automaticamente il tuo studio e funzionerà bene.

spero che funzioni.


5

Il mio problema era che le mie cartelle erano strutturate come:

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

(La mia Slayout-landcartella era nella mia layoutcartella)

Ho cambiato la struttura in questo e ha funzionato per me:

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

Spero che questo aiuti!


5

Non conosco il motivo dietro questo errore, ma l'ho scoperto da qualche parte e ha risolto il mio problema.

  • Vai a "File> Struttura del progetto> Moduli"
  • Fai clic su "Aggiungi (+) "
  • Fai clic su "Android" e "Applica", quindi su "OK"

4

si scopre che stavo modificando la versione DEBUG dell'xml, per risolverlo, basta chiudere la scheda che presenta l'errore e riaprirlo



2

Per me il plugin Android Supportviene disabilitato in qualche modo. Abilitare nuovamente i plugin ha funzionato per me.

Settings > Plugins > Android Support

2

Seleziona il sapore appropriato in Build Variants.

Se stai visualizzando un determinato file in Flavour1, seleziona quell'aroma nella finestra BuildVariants.

Se il tuo IDE è Android Studio (3.2.1 al momento della stesura di questo documento), dovresti trovare la finestra Build Variants in basso a sinistra, allineata verticalmente.


1

A volte questo errore è correlato ad altri errori nel tuo manifest. Controlla se ci sono alcune dipendenze mancanti e se tutti i tag sono chiusi. Nel mio caso avevo eliminato una cartella nella cartella / res, l'ho ripristinata e quell'errore è scomparso.


1

Per me, nei file XML offensivi mancava la riga di intestazione ...

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

Aggiungendo quello riparato.


1

Iniziato a ottenerlo di nuovo, quello che funziona ora è aggiungere un po 'di spazzatura all'interno di build.gradle. Quindi prova e sincronizza. In caso contrario, rimuovere l'immondizia e sincronizzare nuovamente. Dopo l'indicizzazione, funziona.


1
  • Vai a "Preferenze> Lingue e frame> Schemi e DTDS"
  • Fai clic su "Aggiungi (+)"
  • Fai clic su "applica" e poi su "ok"

spero che funzioni.


aggiungi il tuo url.
Scarlett,

1

Per me, clonerò un progetto da gitlab, c'è un sommario:

TradeClient / TradeClient / app / ...

quindi ho riscontrato questo problema, risolvo il problema con il metodo seguente:

  • rimuovere il percorso intermedio "TradeClient", come TradeClient / app / ...
  • quindi File -> Cache non valide / Riavvia ...

0

Il nuovo sistema di generazione in Android Studio crea una buildcartella. Le barre di ispezione del codice in questa cartella e il filegradle cartella. Queste cartelle dovrebbero essere ignorate in modo proattivo quando si esegue il controllo del codice.

Ho sollevato un problema con il team di Android Studio su:

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


0

Ora ho riscontrato questo problema: ho creato una nuova cartella nella cartella di layout che conterrebbe tutto il file XML relativo alla mia pagina "home" della mia app e quindi un'altra cartella che si riferirebbe alla mia pagina "impostazioni" come volevo organizzare il mio xml.

Tuttavia, Android riconosce solo la cartella layout per xmls, non la cartella layout / home o layout / settings quindi è per questo che mi ha dato l'errore.

Grazie alla risposta di Mazen Kasser, mi ha aiutato a capire questo.


0

Mi sono imbattuto in questo recente tentativo di migrare un'app esistente alla progettazione dei materiali. Tutto quello che dovevo fare per risolvere il problema era cambiare la versione di compilazione dell'SDK del progetto. File | Impostazioni del progetto. Seleziona l'app e scegli una versione dell'SDK di compilazione per Lollipop o successiva.


0

Qualsiasi soluzione menzionata qui mi ha aiutato. Pubblicherò il mio problema nel caso fosse utile a chiunque. Nel mio caso l'errore si stava verificando utilizzando l'associazione dati . Sembra che vengano creati gli intermedi xmls di associazione dei dati. Se si verifica un errore durante il tentativo di apertura, verrà visualizzato l'xml intermedio con questo " URI non registrato " invece di aprire l'xml corretto con l'errore.


0

Ho avuto questo problema e per me è stato dovuto alla creazione e alla manipolazione di file di risorse all'esterno di Android Studio. Ho seguito le istruzioni sulla creazione di nuovi file e cartelle di risorse tramite Android Studio e ho risolto il problema. È necessario creare una nuova directory File di risorse non. Ti permetterà di specificare o creare una directory per te se ne hai bisogno. Se stai creando directory per layout per versioni diverse, inserisci le informazioni in alto, incluso il nome del file di risorse che desideri copiare nella nuova cartella, seleziona Versione e inserisci la versione Android. Creerà la directory appropriata con una copia della tua risorsa al suo interno.


0

Un altro suggerimento, che è stata la soluzione per me: ho ricevuto l'errore nella riga

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

nel file valori.xml che è stato generato automaticamente durante il processo di compilazione.

È stato risolto aggiungendo il androidprefisso nel file 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>

doveva essere cambiato in

<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

Ciò che l'ha risolto per me che non ho visto finora menzionato: se hai più "sapori", assicurati che la "variante di costruzione" attualmente selezionata corrisponda al sapore per il file di layout che stai cercando di visualizzare.


0

Chiunque ottenga questo errore subito dopo l'importazione del progetto potrebbe essere colpito da un'importazione / sincronizzazione graduale iniziale non riuscita. Di solito si verificano errori gravi (punto esclamativo lampeggiante nell'angolo in basso a destra). Per me questa è stata la causa molto strana (la cartella del progetto è stata collegata simbolicamente): https://stackoverflow.com/a/52952148/44166


0

Ho riscontrato lo stesso problema nell'aprire Android React Native Project in Android Studio.

La causa principale è che ho aperto la cartella principale di React Native Project anziché la cartella Android di React Native Project.

Riaprire il progetto nella cartella Android di React Native Project ha risolto il mio problema.


-3

Prova a installare il plug-in tracker Android. lo troverai in studio.

Riavvia lo studio

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.