App se bloquea en FroYo & Gingerbread

– La respuesta anónima es mi respuesta que resolví este problema con .–

He estado escribiendo una aplicación para Android, todo está funcionando bien en Honeycomb, pero no jugar bien en mis dispositivos FroYo y Gingerbread (lo contrario de lo que cabría esperar a la derecha).

Aquí está el código que creo que está causando el problema:

@Override protected void onStart() { int versionNumber = Integer.valueOf(android.os.Build.VERSION.SDK); if (versionNumber == 11) { super.onStart(); ActionBar actionBar = this.getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } } 

Aquí implemento la capacidad de icon-up-to-home de ActionBar, agregué la variable versionNumber ya que creía que la falta de un ActionBar en dispositivos pre-Honyecomb estaba causando el problema cuando se ejecutó la actividad, pero todavía se bloquea y creo que esto Es la cuestión, aunque soy terrible con la depuración y no entiendo nada que me da por logcat.

Cualquier ayuda sería muy apreciada, tener un buen día!

Editar: logcat – Espero que tengo la sección correcta ?!

08-20 17: 21: 41.326: WARN / ActivityManager (2707): Intentando iniciar com.squirculardesign.android.pixel / .About 08-20 17: 21: 41.346: INFO / dalvikvm (4059): No se pudo encontrar el método com .squirculardesign.android.pixel.About.getActionBar, referenciado desde el método com.squirculardesign.android.pixel.About.onStart 08-20 17: 21: 41.346: WARN / dalvikvm (4059): VFY: no se puede resolver el método virtual 54: Lcom / squirculardesign / android / pixel / Acerca de; .getActionBar () Landroid / app / ActionBar; 08-20 17: 21: 41.346: DEBUG / dalvikvm (4059): VFY: reemplazar opcode 0x6e en 0x0011 08-20 17: 21: 41.346: DEBUG / dalvikvm (4059): VFY: código muerto 0x0014-0018 en Lcom / squirculardesign /android/pixel/About;.onStart () V 08-20 17: 21: 41.386: INFO / ALSAModule (2588): Inicializado dispositivo ALSA PLAYBACK hifi 08-20 17: 21: 41.386: WARN / AudioFlinger (2588): write Bloqueado por 108 ms, 3 escrituras retardadas, 0x5e758 08-20 17: 21: 41.406: DEBUG / dalvikvm (4059): GC_EXTERNAL_ALLOC liberado 38K, 52% libre 2621K / 5379K, externo 190K / 518K, pausado 36ms 08-20 17: 21: 41.596: INFO / AudioFlinger (2588): detener la salida streamType (0, 1) para 1 08-20 17: 21: 41.596: DEBUG / AudioHardwareYamaha (2588): AudioStreamOut :: setParameters (keyValuePairs = "stop_output_streamtype = 1") 08-20 17: 21: 42.096: ERROR / yamaha :: media :: Parámetros (2588): SalesCode = OPS 08-20 17: 21: 42.671: ERROR / lights (2707): write_int: path / sys / devices / virtual / Misc / melfas_touchkey / brightness, valor 2 08-20 17: 21: 42.671: WARN / PowerManagerService (2707): Temporizador 0x7-> 0x3 | 0x3 08-20 17:21 : 42.671 INFO / PowerManagerService (2707): Ulight 7-> 3 08-20 17: 21: 42.671: DEBUG / PowerManagerService (2707): setLightBrightness: mButtonLight: 0 08-20 17: 21: 43.666: INFO / ALSAModule (2588): Terminado ALSA PLAYBACK dispositivo hifi 08-20 17: 21: 44.086: ERROR / yamaha :: media :: Parámetros (2588): SalesCode = OPS 08-20 17: 21: 51.181: WARN / ActivityManager (2707): El tiempo de espera del lanzamiento ha expirado, ¡dando para arriba el bloqueo de la estela! 08-20 17: 21: 51.336: WARN / ActivityManager (2707): Tiempo de inactividad de actividad para HistoryRecord {40a6f0a8 com.squirculardesign.android.pixel / .About} 08-20 17: 21: 56.456: DEBUG / dalvikvm (2929): GC_EXPLICIT liberado 672K, 53% libre 3917K / 8327K, 12588K / 12670K externo, pausado 121ms 08-20 17: 22: 01.876: INFO / StatusBarPolicy (2834): onSignalStrengthsChanged 08-20 17: 22: 04.006: DEBUG / BatteryService (2707) : Update start 08-20 17: 22: 04.011: ERROR / BatteryService (2707): Estado TMU = 0 08-20 17: 22: 04.011: DEBUG / BatteryService (2707): updateBattery nivel: 79 scale: 100 status: 2 health : 2 presente: verdadero voltaje: 4050 temperatura: 270 tecnología: Li-ion Alimentado por CA: falso alimentado por USB: true icon: 17302229

Esto siempre parece suceder, hago la pregunta y el problema se vuelve más claro en mi mente después de haber explicado para que alguien que no está en el contexto podría entender …

La solución que encontré fue:

 //Sets the icon to 'go home' button @Override protected void onStart() { int versionNumber = Integer.valueOf(android.os.Build.VERSION.SDK); if (versionNumber >= 11) { super.onStart(); ActionBar actionBar = this.getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } else { super.onStart(); } } 

Esto soluciona el problema en Gingerbread & FroYo, la diferencia es que super.onStart (); Nos disparó no importa qué.

Para aquellos de ustedes que inevitablemente van a comentar sobre mi solución de cinta hacky / pegajosa: Esta aplicación en particular no necesita una ActionBar siempre, yo estaba usando los elementos de ActionBar en Honeycomb ya que se ha convertido en la práctica de la interfaz de usuario para obtener más acciones. Por eso no he implementado un Ac

¿Ha registrado qué número de versión es en realidad? Supongo que su afirmación de alguna manera es cierto. Así que intente registrar lo que iguala versionNumber.

Deberías usar realmente

 int versionNumber = android.os.Build.VERSION.SDK_INT 

Compruebe también esto:

 public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId()==android.R.id.home){ Intent intent = new Intent(this, YourHomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; } 

Usted tiene que declarar "item.getItemId () == android.R.id.home" y diez "dar" el nombre de su actividad en el hogar "YourHomeActivity.class". Ahora, cuando alguien presione el botón "arriba", se le redireccionará a su actividad principal "YourHomeActivity.class".

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