Domanda

Ho appena scaricato e installato il nuovo SDK di Android. Ho voluto creare una semplice applicazione per provare esso.

La procedura guidata di creazione di questo codice:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Eclipse mi dà l'errore

  

R non può essere risolto

on line

setContentView(R.layout.main);

Perché?

PS: ho un file XML denominato main.xml sotto res/layout/

.
È stato utile?

Soluzione 7

Quello che Will ha detto che era giusto

  

R è una classe generata automaticamente che contiene le costanti utilizzate per identificare le risorse>. Se non si dispone di un file R.java (sarebbe gen / eu.mauriziopz.gps / R.java in> Eclipse con il 1.5 SDK) mi sento di raccomandare la chiusura e la riapertura del progetto o andare a> Progetto> costruire tutti (e selezionando "Build Automatically" mentre ci come raccomandato da> Josef). Se questo non funziona di provare a fare un nuovo progetto, se il problema viene ricreata di> post qui di nuovo e andremo più in dettaglio.

, ma ho scoperto che c'era un altro problema che stava causando il primo. Gli strumenti nella directory SDK non hanno i permessi da eseguire, quindi era come il non esisteva per Eclipse, quindi non ha costruito il file R.java.

Quindi, la modifica del permesso e selezionando "Build Automatically" risolto il problema.

Altri suggerimenti

Dopo rintracciare questo problema pure, ho trovato questa nota nella documentazione di Android:

http://source.android.com/source/using-eclipse.html

  

* Nota: Eclipse piace a volte per aggiungere un "import android.R" economico al   cima ai vostri file che utilizzano le risorse,   soprattutto quando si chiede a Eclipse   ordinare o il gestore altrimenti importazioni. Questo   causerà il vostro make per rompere. Guarda   fuori per questi importazione errata   dichiarazioni ed eliminarli. *

Mentre passa attraverso il tutorial di esempio Android, mi capitava spesso di utilizzare il Ctrl + Maiusc + O per "Organizza Imports" e generare le dichiarazioni di importazione mancanti. A volte questo avrebbe generato l'istruzione import non corretta che nascondere la classe R.java che viene generato automaticamente quando si genera.

Ogni volta che ho avuto un problema con la R non è stato generato, o addirittura scomparso, questo era a causa di qualche problema nel file di layout XML che ha impedito l'applicazione venga costruita.

Ogni volta che si ottiene

  

R non può essere risolto

quindi controllare per la directory /res e ci deve essere una certa lima che hanno qualche errore in esso e che impedisce l'applicazione di essere costruito. Per esempio, può essere un file di layout o può essere dovuto a qualche risorsa mancante è, ma è già definito nel file XML.

In caso di ulteriori, anche non utilizzati (!) O non si fa riferimento (!) Immagini di una cartella come res / drawable-MDPI non conformi alle convenzioni di denominazione dei file (può contenere solo [a-z0-9_.] ), la classe R.java potrebbe non generare, causando la catena di eventi tutti gli altri posti di cui. Speranza che aiuta!

  

il mio progetto ha includono un r.java.at l'inizio, R.layout.main lavoro good.But, dopo l'aggiunta di un po 'di codice non funziona, e l'errore è R.layout.main non può risolvere. qual è il problema?

Guardate le vostre importazioni. Le probabilità sono che la linea:

import android.R;

ci sarà. Se questo è il caso, rimuoverlo, in modo che il progetto si risolverà R non con la classe Resources Android di default, ma con quella generata automaticamente dal / res / cartella.

E un'altra cosa che può causare questo problema:

Ho installato la nuova ADT (v. 22). Si è fermato creazione della cartella gen che comprende R.java. La soluzione era quella di installare anche il nuovo Android SDK Costruire Tools da Android SDK Manager.

qui

R.java è un file che i plugin Eclipse Android crea mentre costruire la vostra applicazione. R.java viene creata sotto il "gen" directory. Questo file viene generato dalle informazioni nella sezione "res" directory. Se si esegue selezionare "Progetto" -> "Clean ..." sul Eclipse menù, rimuoverà e quindi rigenerare il file di R.java.

Il problema "R non può essere risolto" succede quando si cambia nome del pacchetto nel file AndroidManifest.xml. Usa il tuo Android nome del pacchetto per creare una sottodirectory della directory "gen", dove memorizza il file R.java.

Eclipse può avere problemi di esecuzione pulita, perché è confuso circa in cui il file R.java è quando si è modificato il pacchetto Android nome. È possibile rinominare la sottodirectory gen per abbinare il vostro nuovo nome del pacchetto, oppure è possibile modificare il nome del pacchetto di nuovo al vecchio nome. Fare la pulito e quindi modificare il nome del pacchetto per il nuovo nome tu vuoi. Questo funziona meglio se si smette di Eclipse da cercare di costruire mentre si stanno cambiando il nome del pacchetto. Sotto il menu "Progetto" deselezionare l'opzione "Crea automaticamente" e anche quando il "Clean ..." finestra di dialogo chiede se deve "Avviare una generazione immediatamente" deselezionare la casella in modo da non cercare di costruire, mentre si sta modificando la nome del pacchetto. Dopo aver modificato il nome è possibile attivare "Build Automaticamente" riaccenderlo.

Si noti che se il vostro AndroidManifest.xml nome del pacchetto di file non corrisponde il vostro nome del pacchetto Java, Eclipse finirà automaticamente l'aggiunta di un "Import .R;" linea a tutti i tuoi file .java che sono i riferimenti a R. Se si cambia AndroidManifest.xml nome del pacchetto, a volte Eclipse non aggiorna tutti questi aggiunto importazioni. Se ciò accade, utilizzare il refactoring di Eclipse ( ALT + Maiusc + R ) per cambiare l'istruzione import in uno dei file Java il nuovo nome del pacchetto AndroidManifest.xml. E 'meglio fare questo mentre è stato disabilitato "generare automaticamente".

R è una classe generata automaticamente che contiene le costanti utilizzate per identificare le risorse. Se non si dispone di un file R.java (sarebbe gen / eu.mauriziopz.gps / R.java in Eclipse con il 1.5 SDK) mi sento di raccomandare la chiusura e la riapertura del progetto o andare a Project> costruire tutti (e selezionando "costruire automaticamente" mentre ci come raccomandato da Josef). Se questo non funziona di provare a fare un nuovo progetto, se il problema viene ricreata di post qui di nuovo e andremo più in dettaglio.

Chiudere tutti i file, progetto pulito, riavviare Eclipse.

E 'opportuno verificare in AndroidManifest.xml. Il package attributo ha il valore corretto.

Cioè:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="your.correct.package.name"
   ...

Dopo aver modificato che, il R.java saranno ri-generata.

Questo errore può essere causato anche con l'aggiunta di un'attività per uno spazio dei nomi che è diverso da quello spazio dei nomi root per il pacchetto.

Per esempio, se è com.example.myapp spazio dei nomi root per il pacchetto, è possibile aggiungere un'attività al namespace com.example.myapp.activities.

Questo produrrà l'errore "R non può essere risolto".

Per risolvere l'importazione R nello spazio dei nomi di default nella vostra attività dovrebbe essere:

import com.example.myapp.R;

Insieme con i suggerimenti grandi nelle risposte precedenti, assicurarsi che il proprio obiettivo di Android è impostato:

  1. Fai clic destro sul progetto
  2. Scegliere Proprietà
  3. Scegli Android nel menu a sinistra
  4. barrare una casella accanto al progetto appropriata costruire destinazione.
  5. Fare clic su Applica e OK

Edit: Un anno dopo ho trovato un altro motivo. Ho avuto un'immagine .jpg nella mia cartella drawable con lo stesso nome come immagine .png. Riferimenti a questa immagine nel mio codice deve aver confuso il programma e ha dato l'errore "R non può essere risolto".

Assicurati di aver installato il modulo di Android strumento di compilazione Manager SDK

progetto tasto destro proprietà-> Java BuildPath selezionare Libreria e aggiungere Android-support.jar il seguire questi step.

Vai a Progetto-> Proprietà-> Percorso Java costruire che selezionare l'ordine e la scheda di esportazione. Set Android-support .jar biblioteca controllata e fino in cima alla lista. E pulito e rebuild..It lavora per la maggior parte dei casi

entrare descrizione dell'immagine qui

Ho appena avuto questo problema per la milionesima volta e ho capito che cosa stava causando: ho creato un file XML con lettere maiuscole nel nome. Tutti i nomi dei file XML in /res devono corrispondere [a-z0-9\\._].

Più semplice soluzione -. A volte è sufficiente salvare il file XML si stava lavorando per ottenere l'autogenerator a calciare in

Salvare il file (ad esempio main.xml) quindi eliminare il file R.java e vedere se il R.java rigenerato risolve il problema R determinazione.

R è una classe generata. Se si utilizza il Android Development Tools (ADT) viene generato ogni volta il progetto è costruito. Si può avere 'creare automaticamente' spento.

Controllare i nomi dei file XML. Essere sicuri che sono tutti in minuscolo.

Inoltre, assicurarsi che tutti i nomi delle risorse immagine sono anche tutti in minuscolo. Ho avuto una lettera maiuscola nel nome del mio file jpg, e ha causato l'errore non risolto R proprio di fronte il mio progetto.

Questo errore ritagliata sulla mia x64 installazione di Linux Mint. Si è scoperto che il risultato è stato un fallimento nel binario ADB, perché il pacchetto ia32-libs non è stato installato. Semplicemente eseguendo apt-get install ia32-libs e rilanciare Eclipse risolto l'errore.

Se la vostra distro x64 non ha ia32-libs, si dovrà andare Multiarch.

Controlla # 4 e # 5 su questo post: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Spero che questo aiuta qualcuno.

Potrebbe essere necessario aggiornare / installare strumenti SDK. Rilanciare Android SDK Manager di nuovo ed installare un nuovo elemento:. Android SDK Build-tools.one da una eliminazione, fissare quale lavoro per voi entrare descrizione dell'immagine qui

Potrebbe essere necessario aggiornare strumenti SDK. Rilanciare Android SDK Manager di nuovo ed installare un nuovo elemento: Android SDK build-tools.

entrare descrizione dell'immagine qui

Ho avuto questo problema pure. Si è scoperto che avevo involontariamente cancellato il "APP_NAME" risorsa di tipo stringa dal file strings.xml, che stava causando un errore di silenzio. Una volta ho aggiunto indietro, la classe R è stata generata con successo e tutto era tornato attivo e funzionante.

In primo luogo verificare c'è qualche errore nella qualsiasi layout xml o no, se poi risolverlo prima.

In caso contrario rimuovere JUnit la dipendenza dal progetto e rigenerare il progetto.

 entrare descrizione dell'immagine qui

Provate a fare il nome del nuovo file di layout XML minuscole. Ad esempio, utilizzare my_file.xml invece di myFile.xml.

Ancora un altro motivo R.java potrebbe non ottenere generato automaticamente è se si dispone directory come res / drawable-hdpi , res / drawable-MDPI o res / disegnabili -ldpi .

1.6 + sembra essere OK con queste directory, ma 1.5 non li vuole. Quando ho rimosso quegli indici, R.java iniziato autogenerating per me nuovo.

Basta andare al Top Android lista dei menu. cliccare su Crea Menu, in meno di Costruire cliccare su Rebuild Progetto .

 entrare descrizione dell'immagine qui

Ho avuto gli esempi di Android 8 e stava cercando di utilizzare Android 7 SDK. Quando ho chiuso il progetto e riaperto la cartella dell'applicazione e ha scelto di utilizzare Android 8 SDK, è stato in grado di trovare il file R. Spero che questo aiuti.

Nel mio caso, ho avuto un errore nel mio AndroidManifest.xml. Altri hanno detto che i file XML devono essere esenti da errori, ma avevo solo guardando nella res / cartella. Trovare e risolvere il maggior numero di possibili errori e il problema potrebbe risolversi.

Spesso questo è a causa del numero di versione MinSDK Lei forniti al momento della creazione del progetto. Esempio:

Se vuoi 2.1 per essere il minimo, Android 2.1 è in realtà Livello API 7.

Si può vedere che cosa sto parlando quando si esplora lo SDK è stato scaricato e installato. Navigare verso il luogo è stato installato l'SDK per (C:\android-sdk-windows per esempio) e aprire la cartella denominata "piattaforme". Si vedrà qualcosa come "android-7" elencato come una cartella e se si apre che c'è un file source.properties che, quando aperto con un editor di testo, vi mostrerà la versione della piattaforma corrispondente.

Quando si crea un progetto, ed è necessario selezionare un API "Build Target", l'ultima colonna in tale elenco il nome di "Livello API" indica il numero che si sta cercando quando il popolamento l'impostazione MinSDK.

Questo è probabilmente uno degli errori più comuni che si traduce in file R.java non essere creata sotto Progetto> gen> nomepacchetto> R.java.

Rimuovi main.out.xml. Sono nuovo di questo e non so ancora che cosa questo file è usato per, ma la rimozione ha eliminato il problema.

Purtroppo nessuna delle domande esistenti aiutato. Dal momento che il mio problema sembra piattaforma specifica, questo può funzionare solo se si è in Ubuntu a 64 bit (Attualmente sto usando Ubuntu 12). In un primo momento non ho visto la finestra "problemi", che già accennato una soluzione, che in data 64 bit ambiente è necessario le 32 librerie bit, che può mancare:

  

sudo apt-get install ia32-libs

Ho installato il pacchetto e ricostruire il mio progetto, che ha fissato il problema per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top