Error de tutorial de Android: R no se puede resolver con una variable

Http://developer.android.com/training/basics/firstapp/building-ui.html

He estado siguiendo este tutorial, pero tengo dos errores, tanto "R no se puede resolver a una variable". He hecho aplicaciones android (fáciles) en el pasado, y recuerdo que este problema se soluciona comprobando si tengo o no una declaración de importación R (que no) y si el proyecto se ha limpiado antes de ser construido Otra vez (lo limpié y todavía consigo el error). Estoy en una pérdida en cuanto a qué hacer. ¡Gracias!

* También quiero mencionar que vi el hilo del mismo título con 170 hits, y la solución de "eliminar la declaración de importación R" no se aplica a mi problema (no creo) Gracias de nuevo

Todo el código es directamente desde el enlace anterior, pero aquí es por conveniencia

Activity_my_first.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> <EditText android:id="@+id/edit_message" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" android:hint="@string/edit_message" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" /> </LinearLayout> 

MyFirstActivity.java

 package com.example.myfirstapp; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.support.v4.app.NavUtils; public class MyFirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_first); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_my_first, menu); return true; } } 

Strings.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">My First App</string> <string name="edit_message">Enter a message</string> <string name="button_send">Send</string> <string name="menu_settings">Menu Settings</string> </resources> 

Editar: Cuando limpio el proyecto, recibo este mensaje en la consola:

[2012-06-29 11:12:38 – MyFirstApp] W / ResourceType (6140): Bloque XML incorrecto: tamaño de encabezado 91 o tamaño total 0 es mayor que tamaño de datos 0 [2012-06-29 11:12:38 – MyFirstApp]: 2: error: Error: Ningún recurso encontrado que coincida con el nombre dado (en 'title' con el valor '@ string / menu_settings' ).

Edit: agregó una línea al archivo xml del diseño <string name="menu_settings">Menu Settings</string> Errores de proyecto de limpieza fijos, pero todavía no puedo ejecutar el proyecto de los dos errores de R.

Estoy trabajando mi camino a través del mismo ejemplo, y tenía el mismo problema (o muy similar).

Finalmente me di cuenta de que había una pequeña x roja en el manifest.xml. Efectivamente, se quejaba de esto:

 android:label="@string/title_activity_hello_world" > 

Así que añadí:

 <string name="title_activity_hello_world">Hello World</string> 

A strings.xml y ahora funciona.

Tuve el mismo problema al seguir el tutorial. Limpiar el proyecto o limpiar las importaciones no resolvió el problema.

Cómo se solucionó el problema (simplemente): Salí de Eclipse y lo relanzé.

2 cosas posibles

El nombre del paquete especificado en el manifiesto de Android no es el mismo que en los archivos de Java.

O bien, su IDE no ha generado el archivo R.java en la carpeta gen /. Trate de construir de nuevo (a pesar del error) y normalmente lo aclarará.

Básicamente, el archivo R.java se genera para usted y en el mismo paquete para que pueda referirse a él como simplemente R.

Tenía android:text="@string/button_send"
Que dio el error: No resource found that matches the given name (at 'text' with value '@string/button_send').

Intenté resolver el error usando el tuturial. Pero el tutorial no me dice que escriba todas las líneas requeridas una por una. Así que me falta escribir "<string name="button_send">Send</string>" en strings.xml.

¡Después de agregar la línea anterior el error desaparece! Que creo que es algo similar al problema original en este hilo.

Así que si hubiera copiado todas las líneas del tutorial dado, tal vez no hubiera ocurrido, pero al escribir nuestro auto es como creo que es la mejor manera de aprender.

He encontrado la solución:

Vaya a su project->res->menu de abrir el archivo XML allí y eliminar esta línea:

 android:title="@string/menu_settings" 

Lo borré y empieza a funcionar, después de 3 horas de la misma advertencia en la sección de problema.

Incluso tiene sentido cuando lo lees, "en title with value @string/menu_settings "

Por favor confirme que no hay error en

1- Carpeta del proyecto 2- Vista del problema del eclipse 3- Consola 4- registro de errores como en la imagen Introduzca aquí la descripción de la imagen

Tienes que asegurarte de

  1. Limpie su proyecto Proyecto -> Limpieza
  2. El directorio / res no contiene errores (algunos archivos aparecerán con un icono rojo en el explorador de archivos)
  3. Sus importaciones no contienen esta línea de import android.R;
  4. Compruebe que en AndroidManifest.xml, el paquete de atributos tenga el valor correcto. <manifestxmlns:android="http://schemas.android.com/apk/res/android" package="your.correct.package.name"

Esto lo arregló para mí: https://stackoverflow.com/a/3259974/1538785

Parece que eclipse le gusta añadir una línea de importación a los archivos java sin ninguna razón. Vaya a su archivo java, pulse ctrl + shift + o y todas las declaraciones de importación aparecerán. Elimine la línea que dice import andriod.R

Haga clic con el botón derecho en el proyecto, seleccione "Herramientas de Android"> "Agregar biblioteca de soporte"> "Biblioteca de soporte de Android, revisión 11"> "Instalar"

En mi caso, el problema era que estaba en Linux de 64 bits, y las bibliotecas de 32 bits necesarias no estaban instaladas, lo que significa que las herramientas de compilación no podían generar R.java.

Ejecutando este comando, luego limpiando el proyecto, arregló el problema:

 sudo apt-get install ia32-libs 

Asegúrese de que los ejecutables (aapt, etc.) en sdk / build-tools / android-xyz / * son ejecutables si está ejecutando la descarga predeterminada en su Linux box …

Tuve el mismo error al intentar hacer el primer tutorial. Para obtener la aplicación para ejecutar editado MainActivity.java por lo que parecía este

 package com.example.myfirstapp; 

Import android.app.Activity; Import android.os.Bundle;

Public class MainActivity extends Actividad {

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } 

}

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.