android-studio - "Non può risolvere il simbolo R" in Android Studio




r.java-file (25)

In ogni istanza in tutte le mie classi in cui faccio riferimento a R.id.something , la R è in rosso e dice "non può risolvere il simbolo R". Inoltre, ogni volta che viene visualizzato R.layout.something , è sottolineato in rosso e indica "impossibile risolvere il metodo setContentView (?)". Il progetto va sempre bene. È fastidioso vederlo tutto il tempo. Ho letto molte altre domande qui su qualcosa di simile ma la maggior parte ha riguardato l'importazione di progetti da Eclipse. Sto usando quella che credo sia la versione più recente di Android Studio e il progetto è stato creato con Android Studio e ha funzionato senza alcun problema di "impossibile risolvere R". Mi piacerebbe sapere cosa provoca questo se qualcuno lo sa.


Answers

Questa notazione sembra funzionare bene.

android:id="@+id/viewID"

Il pannello di progettazione di Android Studio non sembra funzionare correttamente.


Ho avuto questo con

  1. Una lettera maiuscola tra le mie risorse estraibili.
  2. Importa Android.R aggiunto da Android Studio (o Eclipse)
  3. Errore nel file xml

Stesso problema. Iniziato quando ho aggiunto alcune immagini nella mia cartella disegnabile e ho provato ad accedervi. Anche le immagini aggiunte stavano avendo l'estensione con lettere maiuscole. Sembra che si sia schiantato la build, dal momento che anche se li avessi rinominati, il messaggio era lo stesso e R era inaccessibile. Quello che ho fatto è, nel file .iml, ho cercato l'excludeFolder e li ho rimossi (come il muggito):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />

Successivamente ho ricostruito il progetto e R è ricomparso magicamente.


  1. Controlla i tuoi file xml.
  2. Progetto pulito.

Questo è.

Ad esempio ho avuto una voce nel mio strings.xml :

<string name="A">Some text</string>

E in activity_main.xml ho usato questa stringa

<TextView
android:id="@+id/textViewA"
android:text="@string/A"/>

Mentre lavoravo con il progetto, l'ho cancellato

 <string name="A">Some text</string>

E di conseguenza activity_main.xml non è diventato valido. Come risultato: non può risolvere R.

Quindi, controlla *.xml file *.xml e pulisci il progetto.


Brother, il file R.java contiene il collegamento tra la pagina xml e java. "R non può essere risolto" sorgono solo se c'è un problema con alcuni dei tuoi file di risorse. Quindi il modo migliore ed efficace è eliminare l'ultimo xml fatto o disegnabile nel file res. e poi di nuovo partire da lì secondo le norme di codifica Android. Questa è l'unica strada. Il modo efficace e giusto.

Utilizza anche Git per il corretto monitoraggio del codice. ..

Felice codifica .. :)


`Ho avuto lo stesso problema e risolto da:

1) Sync Project with gradle files
2) Build -> Clean Project
3) Build -> Rebuild Project
4) File -> Invalidate caches

//imp step
5) Check your xml files properly.`

Recentemente ho avuto questo problema e il clean / build ecc. Non lo risolve. Ho indovinato che avevo un problema da qualche parte ma non ero sicuro su dove cercare di trovarlo (era nei file manifest, xml delle risorse ecc.).

Quando qualcosa non va, puoi scoprire di cosa si tratta eseguendo un analisi del codice.

Dal menu in alto, scegli:

Analizza -> Controlla codice, analizza l'intero progetto usando il profilo 'Predefinito'.

I risultati dell'ispezione conterranno un elemento chiamato "Android". Qui otterrai un elenco di tutto ciò che causa problemi nelle risorse e nel file manifest. Gli errori apriranno i file xml generati dalla build che mostreranno eventuali errori in rosso.

Il mio problema è stato causato perché stavo usando i file manifest basati sugli aromi e ho copiato alcune autorizzazioni all'interno del tag <application> nel flavor per sbaglio.

AGGIORNAMENTO: ho avuto un problema dopo il quale Android Studio mostrava ancora l'errore dopo la correzione, anche se ora potevo creare ed eseguire perfettamente mentre l'errore era ancora lì. (Sto gestendo una build di canarino, quindi inseriscilo per ora)


Penso che se metti i file di attività in un'altra cartella rispetto a quella predefinita. È necessario importare com.example.yourproject.R (questo è il file R del progetto NON file Android.R) in TUTTE le attività che utilizzano R. Ad esempio, nel file MainActivity inserisci questa riga:

import com.example.yourproject.R;


Ho avuto difficoltà a sistemarlo da solo.

  • Assicurati di non avere errori nei file layout.xml.
  • Vai a Costruisci> Pulisci progetto

Ha funzionato per me, spero che funzioni anche per te.


Hai aggiornato gli strumenti SDK di recente? Avvia il gestore di Android SDK e assicurati di disporre degli ultimi strumenti di SDK, che ora sono separati dagli strumenti della piattaforma. Ho avuto questo stesso problema quando ho aggiornato il mio gestore SDK, il pacchetto degli strumenti di sviluppo SDK non è stato visualizzato per l'installazione / aggiornamento fino a quando non ho chiuso e riaperto il gestore SDK.


Ho affrontato questo problema quando ho rinominato manualmente la cartella del dominio della mia app. Per risolvere questo problema, ho dovuto

  1. Imposta la corretta struttura della cartella del package di <manifest> in AndroidManifest.xml .
  2. Imposta la nuova posizione del pacchetto per android:name di <activity> in AndroidManifest.xml .
  3. Cancella cache da

Menu File -> Invalida cache / riavvio ...

Il problema sarà risolto, una volta riavviato lo studio Android e creato l'indice nuovo.


Ho un caso speciale per questo problema.

Nel mio progetto, ogni cosa va bene, può compilare e costruire con successo, ma nel mio IDE di Android Studio (e ho anche provato IDEA intelligente, sono nella stessa situazione) il file R.java non può essere risolto bene e deve sempre essere cadere nella linea rossa.

Proprio come questo:

Questo mi ha fatto impazzire, non riesco a sopportare il colore letto quando sto programmando.

Alla fine ho scoperto che questo problema complicato è causato dalla dimensione del mio file R.java. Il mio progetto è molto vasto, supporta molte dimensioni multi-lingua e multi schermo. Ci sono così tante risorse che la dimensione del mio file R.java è di circa 2.5M .

La dimensione massima di un file in Android Studio è di 2.5M nelle impostazioni predefinite, quindi i file più grandi di questo limite non possono essere risolti correttamente. Ed è possibile modificare le impostazioni predefinite in "AndroidStudio-root / bin / idea.properties".

cambia questa linea:

idea.max.intellisense.filesize=2500

a :

idea.max.intellisense.filesize=5000

Quindi riavviare Android Studio, il colore rosso respinto, posso programmare di nuovo felicemente.


Ho avuto lo stesso problema e la maggior parte delle volte è stato risolto da

  • Sincronizza il progetto con i file gradle
  • Fare Build -> Clean Project
  • Fare file -> Invalida cache

Ma questa volta l'errore persiste anche dopo aver fatto tutte queste cose e alla fine ho trovato il colpevole.

Il problema era in un file xml , dove ho dato un valore di stringa normale per un android:id invece di un tipo di risorsa id .

SBAGLIO

android:id="username"

CORREZIONE

android:id="@id/username"

Incasinare le cose relative alle resources nei file xml è una delle ragioni principali di questo errore. Attenzione al fatto che potrebbe non essere mostrato come un errore nel file di layout xml.

NOTA

Nella maggior parte dei casi il compilatore mostra la fonte di errore nel messaggio. Prova a controllarlo prima di provare altre soluzioni


Il tuo codice è solo criptato. La risposta è abbastanza semplice.

Just go to **Build** --> **Clean Project**.

Questo dovrebbe fare il trucco.

Sto utilizzando Android Studio 3.0.1 .


Basta pulire il tuo progetto e Sync Project con Gradle File.

E il problema sarà risolto.


Nelle ultime versioni di Android Studio, almeno per me, i seguenti lavori:

"Strumenti" -> "Android" -> "Sincronizza progetto con file Gradle"

Nell'ultimo Android Studio 3.1.3 (luglio 2018), "Sincronizza progetto con file Gradle" è disponibile nella barra dei menu principale.


Ho avuto lo stesso problema e succede quando creo un nuovo progetto.

Quello che faccio è:

  • controlla gli aggiornamenti dell'SDK
  • quindi gli aggiornamenti di Android Studio,
  • quindi riaprire il progetto
  • apri il file andoridmanifest.xml
  • cancella uno spazio tra un "_>" nell'androide: etichetta e salva.

Per me va bene.


Do: Build> Clean Project

IMPORTANTE: accertarsi di non avere errori dopo Progetto pulito nel riquadro dei messaggi (Alt + 0). Se trovi cerchi rossi con un punto esclamativo, devi rimuovere tali errori nel codice.

Per lo più questi errori sono legati a @ string / o @ array /. Pulisci il progetto di nuovo e fatto!


Ci sono molte cause per questo errore.

  1. A volte si verifica per la sostituzione di un file immagine con lo stesso nome.
  2. Supponiamo che tu abbia cancellato un elemento dal tuo layout .xml dì un <Button/> ma è ancora dichiarato in qualsiasi attività o frammento .java.
  3. Molti altri.

Il modo migliore per tenere traccia dell'errore è Ricostruirlo piuttosto pulito o sincronizzato facendo qualche errore intenzionale.

Se non risolve il tuo problema, allora ci deve essere qualche errore di difetto o di runtime o errore si è verificato a causa di un uso improprio delle risorse potrebbe essere sia java o xml nel tuo codice o design che sta costringendo gradle a fermarsi perché (R ) Il file esource non può indicizzare correttamente le tue risorse e devi ammetterlo.

Se il progetto è stato eseguito prima di apportare le modifiche, commentare le modifiche apportate e provare a ricostruire il progetto.

Funzionerà sicuramente poiché non ci saranno cambiamenti.

Per rintracciare l'errore esatto, controlla le modifiche suddividendo le modifiche in un modulo più piccolo.

Ad esempio: se si sta rendendo visibile un elenco con un clic del pulsante e inserendo valori di elenco nell'adattatore, controllare innanzitutto se è possibile renderlo visibile o meno, quindi verificare gli errori dell'adattatore.


Ho avuto questo anche questo problema. Un semplice 'gradlew clean' e 'gradlew build' hanno fatto il trucco.

Fare clic su Build-> Clean Project e questo eseguirà una pulizia gradle


Ho un problema simile ed ecco cosa ho fatto:

progetto pulito e Sync Project con Gradle,

controlla la versione di buildTools nel mio sdk

Da build gradle (modulo) cambia minSdkVersion da 8 a 9

defaultConfig {
        applicationId "PackageName"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

Ma tutto ciò non ha aiutato.

Finalmente ho trovato la risposta (questo ha funzionato nel mio caso)

Cambia da build.gradle (modulo: app)

android {
    compileSdkVersion 21
    buildToolsVersion '21.0.1'
......
....
}

O

seleziona File | Modifica della struttura del progetto Build Tools Version to 21.1.1


Build> Clean Project

Questo ha funzionato per me. Ho avuto lo stesso problema un paio di volte, e questo sembra averlo corretto. A meno che tu non abbia cambiato qualcosa o abbia chiamato una variabile R. Questo problema di solito accade dal nulla, quando capita a me, quindi immagino che i suoi studi Android stiano impazzendo. haha

Buona visione e buona fortuna con i tuoi progetti.


Tizi, penso che ci siano molti colpi nell'oscurità qui. In alcuni casi, Clean and Sync Project sarà di aiuto solo dopo aver risolto il problema.

Step1: Quindi vai e guarda la parte superiore di ogni file in cui il pacchetto è specificato come segue pakage="YourURL.YourProject"; e assicurare che sia specificato il pacchetto corretto (Your Own Project). Lo troverai nei file java e AndroidManifest.xml ed è fondamentale che i file java facciano riferimento al pacchetto corretto, poiché quel pacchetto contiene le risorse ("R") a cui stai puntando. Se non corrispondono, l'errore non può risolvere il simbolo R.

Step2: Clean, Sync, qualunque cosa. Fatto

Quindi, perché questo si verifica in modo casuale o cosa ho fatto di sbagliato ??

Se copi e incolli il codice, dovresti prestare molta attenzione al "pacchetto =" come spiegato sopra. Ancora più importante, quando si incolla il codice, viene immediatamente eseguita una sorta di debugger (scusa il mio termine tecnico errato) per mostrare "errori presunti", che prende immediatamente in considerazione il "pacchetto errato" e ottieni tutti gli errori. Pertanto, anche se hai corretto immediatamente la notazione dopo aver incollato, il debugger è già aggiornato. Ecco perché "Clean, Sync, Whatever" funziona A VOLTE


Questa è una domanda molto vecchia, ma succede ancora molto e non c'è una risposta veramente completa qui.

Ho avuto questo problema più volte di quanto voglio ammettere. Può essere causato da una vasta gamma di problemi che, per lo più, tutti hanno a che fare con la struttura del progetto, senza corrispondere a quanto previsto. Ecco una lista di tutti i problemi che ho avuto:

L'importazione da Eclipse ad Android Studio non funziona sempre correttamente, specialmente con le versioni precedenti di Android Studio. Assicurati di utilizzare l'albero delle directory corretto. Dovrebbe assomigliare a questo per un'applicazione moderatamente matura:

AppName/        // AppName is your app's name, obviously
    .gradle/    // This is a compiler created directory. You should normally leave it alone
    .idea/      // Ditto
    build/      // This too
    gradle/     // And this
    app/
        build/
        libs/
        src/
            androidTest/   // Tests based on the Android instrumentation runner should go here
            main/
                java/
                    fully/           // Typically com
                        qualified/   // the domain name. Longer package 
                                     // names may have deeper folder trees
                            AppName/ // All your java files go here
                res/
                    drawable-*/      // One of these for each resolution you support
                    layout/          // All of your general layouts
                    menu/            // All of your menu layouts
                    values/          // All of your resource xml files
                    xml/             // PreferenceScreen layouts go here
                AndroidManifest.xml
            debug/         
            test/          // Pure jUnit tests should go here
        .gitignore
        app.iml
        build.gradle   // This is the gradle file you should be making most changes to
        proguard-rules.pro
    .gitignore
    build.gradle       // This gradle file should mostly be left alone
    gradle.properties
    gradlew
    local.properties
    AppName.iml
    settings.gradle

Potrebbe non apparire così nel tuo IDE. C'è un menu a discesa sopra l'albero dei file che mostra i tuoi file in modi diversi, e il mio sistema è impostato su un Android chiamato che interrompe i tuoi file nei loro diversi tipi. È più facile risolvere questo tipo di problema da quello denominato Project, e ancora più semplice direttamente dal file system del tuo sistema operativo, perché Android Studio comprime le cartelle che contengono solo un'altra cartella su una singola riga.

Soprattutto se cambi mai il nome della tua app, devi assicurarti che l'albero dei sorgenti principale / java / com / dominio / NomeApp sia aggiornato. Assicurati anche che il tag del pacchetto nel tuo AndroidManifest.xml sia corretto.

Se ci sono errori nei file Gradle o nel tuo AndroidManifest.xml, ciò impedirà ad Android Studio di creare correttamente i tuoi file di risorse. I file Gradle possono essere risolti aggiornando Android Studio a volte, specialmente dalle versioni precedenti alla 1.0. A volte questo perché smette di supportare versioni precedenti del plugin Gradle, quindi è necessario aggiornare i numeri di versione. A volte può essere difficile trovare le versioni correnti. A partire da oggi, 17/07/2015, le mie app si stanno completando bene con com.android.tools.build:gradle:1.2.3 . Questo è nel blocco delle dipendenze nel file gradle più esterno,

Se il tuo AndroidManifest fa riferimento a una risorsa o attività non selezionabile, a una stringa oa un'attività, si interromperà e causerà questo errore. A volte, se qualcosa fa riferimento a una risorsa drawable o stringa inesistente, otterrai questo errore.

Se hai un file danneggiato o un file xml non valido, otterrai questo errore.

Nella mia esperienza, a volte Android Studio ha solo problemi, senza motivo, e devi riavviarlo e / o il tuo PC. Non so perché, ma a volte funziona.

Se hai due risorse xml con lo stesso nome, in directory che non si sovrascrivono, puoi avere questo problema. Ad esempio, puoi avere lo stesso nome in Drawable-mhdpi e drawable-xhdpi perché si sovrascrivono a seconda del dispositivo di destinazione, ma se hai lo stesso nome nel layout e nel menu, causerà un problema. Rinominare o eliminare uno dei file.

Se solo alcune risorse hanno questo problema, quelle risorse sono molto probabilmente nella directory sbagliata.

In un caso ho dovuto reinstallare completamente Android Studio. Non so cosa fosse sbagliato, ma ha funzionato.

In un caso ho spostato il mio intero progetto in una directory diversa e l'ho reimportato come nuovo progetto. Non so cosa fosse sbagliato, ma ha funzionato.

File Xml con parole riservate per i nomi possono causare questo problema. Rinominare o eliminarli.

Ci sono alcuni modi in cui il tuo file Gradle può finire per riferirsi a una versione di build-tools che non hai installato. Correggere questo modificando Gradle o scaricando gli strumenti di compilazione appropriati.

Infine, dopo aver risolto ciò che è sbagliato, è necessario pulire il progetto Gradle. Puoi farlo andando al menu Build in alto e selezionando Clean Project.


Utilizzare Intel x86 Emulator Accelerator

Innanzitutto, installa Intel x86 Emulator Accelerator (HAXM). Questo può essere scaricato direttamente da Intel o utilizzando Android SDK Manager. In SDK Manager si trova sotto Extra.

Nella versione di Android Studio che ho utilizzato (0.8.9), Android SDK Manager scarica HAXM, ma in realtà non esegue l'installer (presumo che verrà risolto nelle versioni successive). Per eseguire l'installazione ho dovuto andare in C: \ Programmi (x86) \ Android \ Android-studio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager e avviare manualmente intelhaxm.exe.

HAXM funziona con dispositivi Intel, quindi ha creato un nuovo emulatore con CPU Intel.

Creare un nuovo AVD utilizzando Intel Atom x86

Ciò ha migliorato notevolmente le cose, ma l'emulatore si sentiva ancora un po 'lento. Il passaggio finale era selezionare Usa GPU host in Android Virtual Device Manager (AVD).

Dopo questi cambiamenti, l'emulatore Android è stato avviato in 5-10 secondi e in esecuzione senza alcun ritardo evidente. Si noti che queste funzionalità dipendono dall'hardware (CPU / GPU) e potrebbero non funzionare su alcuni sistemi.





android android-studio r.java-file