2010-03-21 9 views
16

Agregué algunos elementos UI al archivo main.xml en la carpeta res \ layout y cuando intento acceder a ellos mediante la llamada, R.layout.my_uielement, el elemento UI que creé es no ahí. Incluso cuando agrego un nuevo archivo xml con elementos de la interfaz de usuario, todavía no aparece en la clase R.layout. He hecho verificar los identificadores y tienen el formato correcto (creo): android:id="@+id/my_button". ¿Cual podría ser el problema? ¿Necesito compilar el código primero?
ACTUALIZACIÓN:
Ya he intentado adb kill-server luego adb start-server. No parece ayudar. También probé R.id.my_uielement, no se registra tampoco.El archivo R.java no se actualiza con el ID del elemento UI

+4

¿Has probado Clean Project en Eclipse? ¿Los archivos xml están en la carpeta correcta? – Pentium10

+1

sí, están en la carpeta res \ layout. Clean Project tampoco funciona. –

+1

Actualizar complementos Eclipse ADT. Copie la fuente en una nueva carpeta e importe en un nuevo proyecto. Intente volver a crear el archivo XML que tiene. De todos modos, publique la respuesta si lo descubre. – Pentium10

Respuesta

35

esto puede no ser el caso para usted, pero a veces cuando uso algo del paquete android.R (por defecto recursos android) y utilizo en mi clase antes de hacer referencia a algo de mi propio paquete de recursos, Eclipse agrega la declaración import android.R; en mis importaciones. Esto entrará en conflicto con el comportamiento predeterminado de buscar implícitamente en los recursos de su paquete.

Revise sus estados de importación para import Android.R;. Si está allí, quítalo. Y, si está usando algo de android.R, califíquelo completamente cuando lo use en el código.

+0

¡Brillante! Ojalá pueda darte 100 votos válidos: D He estado buscando una respuesta por tanto tiempo. ¡Gracias! – marienke

6

Uso R.id.your_ui_element, no R.layout.your_element

+0

Eso tampoco funciona. –

2

Enfrenté este problema también. El R.java no fue generado ni actualizado.

Si R.java no es generado cuando crea el proyecto, ejecute su proyecto 'empty`. Se generará automáticamente un R.java con referencias a los recursos.

Si R.java es no conseguir actualizan, buscar actualizaciones en Ayuda -> Buscar actualizaciones en Eclipse y actualizar su SDK y ADT, si es necesario.

+0

Eso me ayudó, junto con el proyecto de limpieza. –

+0

@IgorG. Me alegra que haya ayudado. Pasé 2 días antes de encontrar esta pregunta en stackoverflow – Pramod

9

El proyecto de limpieza funciona bien. En Eclipse, si solo cambia algunos componentes xml, no siempre genera un nuevo archivo R. La limpieza lo hace.

+1

¡Sí, funciona, gracias! – Signcodeindie

+1

Gracias, esto funcionó para mí. – Wak

+0

Gracias, esto funcionó para mí. –

2

Después de 2 días he encontrado una manera de solucionarlo ...

que había ahorrado proyecto a medio hacer en mi correo, por lo que cuando se desvaneció R.java yo sólo lo reemplazó con el antiguo archivo R.java, que esto esté arreglado un montón de errores, a continuación, hizo los cambios necesarios y construyó el proyecto (construirlo no limpio) ... No sé si limpiar y construir realiza el mismo trabajo o no ... pero cada vez que lo limpié, R.java solía ser invisible ...

1

He notado que mi archivo R.java no siempre se actualiza correctamente cuando agrego elementos a mi archivo strings.xml o en otro lugar. Si utilizo un nuevo valor que agregué como R.string.newString, el valor entero real aún podría estar apuntando a R.string.oldString o lo que sea (normalmente parece ser el elemento directamente encima o debajo del nuevo elemento en strings.xml pero Aún no he definido el patrón).

Se supone que no debe modificar el archivo R.java, pero no dice nada sobre eliminarlo (no es lo que he visto, de todos modos). Descubrí que la eliminación de R.java generalmente soluciona mis problemas relacionados con los recursos porque Eclipse regenera inmediatamente el archivo con los valores enteros asignados correctamente.

Tenga en cuenta que soy un principiante en Eclipse, así que puede que no entienda las consecuencias de eliminar a R.java pero parece estar funcionando bien para mí hasta ahora.Si lo que estoy haciendo es muy malo, por favor avíseme.

2

Limpiar funciona porque CONSTRUYE el proyecto después de la limpieza. Así que el problema es (al menos fue en mi caso, porque apagué la creación automática unos días antes) que después de agregar un elemento o cualquier cosa en un archivo .xml, el eclipse no lo construye y no puede refresca el R.java.

1

¡Ninguno de estos funcionó para mí! La única forma en que puedo acceder a @+id/foo es por myPackage.R.id.foo.

Cuestiones relacionadas