Error de eclipse con android: id no se puede resolver o no es un campo
Acabo de empezar a jugar con el desarrollo de Android, y ya con sólo un intento de hacer un botón, he encontrado un problema. El error que se me da en el siguiente código es correcto en "R.id.button1". Dice que id no se puede resolver o no es un campo. ¿Necesito hacer referencia manualmente a cada objeto que hago en el archivo xml de diseño? Me pareció que esto funcionó, pero parece ser un poco mucho para cada botón que quiero hacer …
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ private Button button1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); } }); } }
- El servidor de adb está desactualizado. Matar ... no puede enlazar 'tcp: 5037' servidor ADB no ACK * no pudo iniciar daemon * en ubuntu 14.04 LTS
- DDMS (monitor de depuración de Android) no lista procesos en Galaxy S II
- Eclipse - Ningún proyecto visible en explorer
- Android.os.Bundle no se puede resolver en el proyecto de libgdx Android
- ¿Desbloquear y activar la pantalla del teléfono Android cuando compila y ejecuta proyecto?
- Utilizar la nueva versión de ADT
- La consola de Eclipse muestra: 'Error al pulsar la selección: sistema de archivos de sólo lectura' cuando intento empujar un archivo
- Android Studio: 'wrap in container' en formato XML
- ¿Por qué eclipse no puede detectar el dispositivo android?
- Cómo editar HTML / CSS / Javascript en Eclipse ADT
- PÁNICO: Programa de motor emulador que falta para CPUS de 'brazo'
- Error en lib appcompat_v7
- Android SDK & AVD Managers en Eclipse en Fedora 16 - no cerrar el botón de la ventana
He estado perdiendo mucho tiempo (dos semanas) por el mismo problema hasta que descubrí que el problema no era mío sino el de Eclipse. Supongo que hay mucha gente con el mismo problema.
Simplemente inténtelo: Guarde su proyecto, cierre Eclipse y vuelva a abrirlo. Tan sencillo.
¿Necesito hacer referencia manualmente a cada objeto que hago en el archivo xml de diseño
Sí, de lo contrario no podrá hacer nada con esas vistas. En realidad no es tan malo. Por lo tanto, cada vez que crea una vista en su XML, y desea hacer referencia a ella, ponga un ID:
<View android:id="@+id/the_id"/>
Y luego, desde su código puede hacer referencia a él utilizando la clase R
Puede escribir, en el ejemplo, R.id.the_id
y luego Ctrl + Shift + O para que Eclipse auto importe los archivos necesarios.
Puede acelerar su productividad utilizando marcos como Roboguice ; Creo que es para la gente perezosa, sin embargo.
Esta respuesta no es aplicable a esta pregunta (mirando el código que ha proporcionado). Sólo añadirlo si alguien tropieza aquí y las respuestas mencionadas anteriormente no ayudan.
Si la limpieza (Proyecto -> limpia) no ayuda o si guarda y reinicia eclipse tampoco ayuda, compruebe la siguiente importación incorrecta.
import android.R;
Eclipse a veces se agrega por error en la importación automática (Ctrl + Mayús + O). Quitar esa línea (importación) y está hecho: D
Después de este EXCELENTE tutorial , me encontré con el mismo problema. Después de leer la respuesta de Carmello ( Sept 17, 2011. 07:23 ) Simplemente hice clic en Archivo-> Guardar Todo, y voila, 'button0' se definió automágicamente e incluso sintaxis resaltada.
Si "R.id.button1" no está definido, entonces obtendrá un error de compilación, tal como lo vio. Si no define esto en el diseño, no se definirá.
No es necesario especificar cada objeto que se crea en el diseño, pero lo hace si intenta hacer referencia a él desde "R. *". Puede crear manualmente botones y otros objetos que no se especifican en el diseño.
Corrí a través de los mismos problemas por el tiempo. Plz, no olvide definir lo siguiente:
<View android:id="@+id/button1" />
Si está utilizando el ID en su clase .java.
Button b =(Button) findViewById(R.id.button1);
Dicho esto, el id definido en el archivo xml debe coincidir con el id en findViewById ().
Vaya al archivo 'R.java' en la carpeta 'gen' y compruebe si su 'button1' está presente bajo la clase 'id'. Si no, entonces esta podría ser la razón por la que obtuvo ese error. "R.id." asegúrese de que está presente bajo la clase apropiada, en este caso bajo la clase 'id'.
R.id es un objeto generado que asigna números int a los recursos. Intente esto ir a su gen / mypackage / R.java y eliminar el archivo. Como se puede ver, se vuelve a generar. Este archivo proporciona referencias estáticas donde ya que el contexto es más del estado dinámico de su aplicación. Si tiene errores de sintaxis que evitarán la re-generación automática de ese archivo R.java, por lo que obtendrá lotes o errores de R. Como todos los demás han dicho que puede hacer clic en guardar todo el icono o ctl + shift + s en las ventanas. Usted puede limpiar el proyecto del proyecto / clean y que limpiarán el 95% de esas excepciones. Sí eclipse es buggy de esa manera, pero netbeans no es compatible con Android que así. Este enlace puede ayudar
Buena suerte
Haz estas cosas, cualquiera de esto te ayudará
- Proyecto -> Limpiar, clic derecho -> Fix Project Properties
- Reiniciar Eclipse
- Hacer alguna modificación falsa en el manifiesto y guardar
- Compruebe su consola para cualquier mensaje de error
- Compruebe su carpeta dibujable, compruebe que los nombres de la imagen satisfacen las reglas
- Android: ¿dónde está android.provider.Telephony.SMS_RECEIVED?
- Cambiar los conmutadores a declaraciones "if-else"