Cos'è R:
Non c'è niente di molto misterioso in R. È solo una classe che ha molte sottoclassi statiche, aprila in eclipse e dai un'occhiata (è sotto gen /).
Ogni membro di questa classe è una delle due cose: 1) classi finali statiche o 2) interi finali statici che sono unici rispetto agli altri membri della loro classe.
Perché è così criptico: è
facile confondersi perché R è generato automaticamente da ant. È criptico perché non dovresti "toccarlo" manualmente (ovviamente puoi ma le tue modifiche verranno automaticamente cancellate al momento della rigenerazione). È inoltre criptico perché a volte eclipse importa automaticamente il file R standard di androidi (come discusso nelle risposte sopra)
Perché è sempre il primo che non può essere risolto: R segue esattamente le regole delle classi e dei pacchetti Java, non c'è nulla di speciale nel modo in cui R si comporta rispetto all'importazione. R verrà automaticamente inserito nel pacchetto specificato dalla voce del pacchetto nel file manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="package.which.will.contain.R.and.probably.the.main.package.in.the.application" android:versionName="8.6.2011" android:versionCode="1">
<uses-sdk android:minSdkVersion="13" />
Per vedere a quale pacchetto appartiene il tuo file R, apri semplicemente la cartella gen / in eclipse (vista pacchetti). Vedrai un pacchetto elencato lì, avrà il nome che hai specificato nel tuo manifest. Prova a eliminarlo, tornerà se tutte le tue risorse seguono le regole di denominazione corrette e tutti i tuoi file xml seguono le regole xml corrette e se la build automaticamente è abilitata in eclipse.
La chiave per comprendere il file R è rendersi conto che è nello stesso pacchetto delle altre classi anche se si trova in una directory diversa da quella degli altri file appartenenti al pacchetto "principale". Dopo aver compreso questo e compreso la sintassi e la denominazione dei file di risorse, la risoluzione dei problemi con R. è facile.