Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: variable tiene un valor incorrecto en while loop

Al desarrollar una aplicación de Android en Android Studio, una variable utilizada dentro de un bucle while tiene un valor incorrecto. Lo reduje en un caso de prueba a un caso muy simple:

  1. Crear un nuevo proyecto en Android Studio, en blanco Actividad
  2. Agregue el siguiente código a la actividad principal

Method onStart:

@Override public void onStart() { super.onStart(); int count = 2; int index = 1; int value = 23; Log.i("test", "value before = " + value); while (index < count) { Log.i("test", "value in while loop = " + value); index++; value = 0; } } 

La salida al ejecutar la aplicación de prueba es:

 value before = 23 value in while loop = 0 

Mientras que el resultado debe ser

 value in while loop = 23 

Cuando se depura, el resultado es como se esperaba ('value in while loop = 23'), pero en una compilación regular de depuración, está mal. El código desmontado de la clase de actividad principal se ve bien, el valor de la variable 'valor' se pone a 0 al final del cuerpo de bucle while. Cuando un código o una función dentro del cuerpo de bucle while utiliza la variable 'valor' tendrá el valor 0 en lugar de 23. En el caso de prueba, utilizo la sentencia de registro para simplificar.

No va mal cuando cambio la línea

 value = 0; 

a

 if (value == 23) { value = 0; } 

O cuando retiro la línea

 value = 0; 

Así que parece un error de optimización. ¿Pero qué optimización se hace que podría causar esto? Hace que el código no sea fiable.

  • AssetManager $ AssetInputStream.finalize () se ha agotado después de 10 segundos
  • Ocultar el teclado EditTexts en Fragmentos
  • SPH-L710 (Sprint Galaxy S III) corriendo 4.4.2 declaraciones erróneas xdpi y ydpi
  • No se puede llamar a void android.view.View.setTranslationZ (float) en un objeto null
  • LocalStorage html5 no funciona en WebView en el dispositivo Samsung Android
  • ¿Cómo puedo dirigirme al navegador Samsung Android?
  • Hacer que el dispositivo Samsung Android anuncie como iBeacon
  • AlarmManager no funciona como se esperaba en el modo de suspensión en S5 Neo
  • One Solution collect form web for “Android: variable tiene un valor incorrecto en while loop”

    Si realmente está seguro de que el código escrito funciona correctamente, de ahora en adelante, debe empezar a comprobar (ordenado):

    • Configuración -> es su configuración de proyecto totalmente bien con las versiones de Java, jdks o la versión de Java es compatible con las bibliotecas Android utilizado? ¿Están sus bibliotecas Java y Andorid correctamente configuradas?
    • Environment -> es su emulador de depuración una biblioteca de terceros o su dispositivo de depuración es un dispositivo válido para depurar su código? ¿Su sistema operativo de codificación es compatible con su ide, versión Java o librerías de Android?
    • JVM -> ¿Ha intentado desinstalar y reinstalar con la fuente correcta para Java jdk con la versión que está utilizando?

    Tal vez usted debe dar algunos detalles sobre su entorno como la versión de Java, Android versión min, OS o el IDE que está utilizando.

    Espero que esas balas le hagan algunas asociaciones correctas para resolver su problema.

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