Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 16/12/12, 00:46:04
Array

[xs_avatar]
superroko2 superroko2 no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Mensajes: 93
Tu operador: Movistar

Porque mi aplicación se cierra?

Se resume básicamente a esto:

Código:
public class TesterActivity extends Activity {
	
	ListView lista;
	
	private static String url2 = "http://www.misitio.com/registerlocation.php";
	private ProgressDialog pd = null;		
	
	String lat = "";
	String lon = "";
    
    JSONParser jParser = new JSONParser();
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        pd = ProgressDialog.show(this, "Registrando localización..", "Esperando señal de GPS válida");
        
        Log.d("Why", "why");
        configGPS();
    }
	
	private void configGPS() {
		LocationManager mLocationManager;
		LocationListener mLocationListener;
		
		mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		mLocationListener = new MyLocationListener();
		
		mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);
	}
	
	public void enviardatos() {
        	
        ArrayList<NameValuePair> postparameters2send = new ArrayList<NameValuePair>();
        postparameters2send.add(new BasicNameValuePair("latitud", lat));
        postparameters2send.add(new BasicNameValuePair("longitud", lon));
        	
        jParser.makeHttpRequest(url2, "POST", postparameters2send);
        Toast.makeText(TesterActivity.this, "Datos enviados, cierre la aplicación", Toast.LENGTH_LONG).show();

    }
	
	
	private class MyLocationListener implements LocationListener {

		public void onLocationChanged(Location location) {
			// TODO Auto-generated method stub
			
			lat = String.valueOf(location.getLatitude()) + "E6";
			lon = String.valueOf(location.getLongitude()) + "E6";
			
			Log.d("HelloGPSActivity", lat);
			Log.d("HelloGPSActivity", lon);
			
			enviardatos();
			
			pd.dismiss();
			
		}

		public void onProviderDisabled(String arg0) {
			// TODO Auto-generated method stub
			
		}

		public void onProviderEnabled(String arg0) {
			// TODO Auto-generated method stub
			
		}

		public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
			// TODO Auto-generated method stub
			
		}
		
	}
}
Estoy haciendo pruebas con el GPS. Si ejecuto la aplicación con el emulador todo bien. Se queda cargando y cuando recibe el GPS se envía. Si la ejecuto en mi móvil (Jiayu G2 con Android 4.0.4) se cierra al recibir el GPS.

Cuál puede ser el error? Puede ser algo de eso de bloquear el MainThread o algo similar?

Un saludo ;)

PD: No copio la clase JSONParser porque sería una absurdidad además funciona bien seguro.


EDITO:

He añadido este código en el LocationManager:

Código:
Thread t = new Thread(new Runnable() {
				public void run() {
					try {
						enviardatos();
					} catch (Throwable t) {
						
					}
				}
			});
			
			t.start();
Por lo poco que sé, si el problema fuera lo de bloquear el MainThread, con esto estaría solucionado, no? Sigue funcionando en el emulador pero en mi móvil: "Se ha detenido la aplicación".

Última edición por superroko2 Día 16/12/12 a las 01:00:17.
Responder Con Cita


  #2  
Viejo 16/12/12, 11:43:27
Array

[xs_avatar]
oscar8x oscar8x no está en línea
Miembro del foro
· Votos compra/venta: (1)
 
Fecha de registro: jul 2008
Mensajes: 361
Modelo de smartphone: Huawei P30 Pro
Tu operador: Vodafone
Has probado a que obtener la posición GPS antes de arrancar la aplicación? Yo no se por qué motivo, pero yo tuve un problema similar de cierres. Sin embargo, arrancaba gmaps con GPS activo y cuando obtenía posición salía y arrancaba mi aplicación y funcionaba ok.
Responder Con Cita
  #3  
Viejo 16/12/12, 18:48:35
Array

[xs_avatar]
superroko2 superroko2 no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Mensajes: 93
Tu operador: Movistar

Como puedo hacerlo? Aunque me parece raro. Los GPS y las aplicaciones tipo Runtastic y demás buscan el GPS con la aplicación abierta.

A ver si puedes explicarme cómo esperar a la señal antes de que se abra y a ver si alguien puede encontrar el error de la mía o explicarme porque se detiene y explicarme como hacerlo para que no ocurra.
Responder Con Cita
  #4  
Viejo 16/12/12, 23:38:34
Array

[xs_avatar]
superroko2 superroko2 no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Mensajes: 93
Tu operador: Movistar

Subo!
Responder Con Cita
  #5  
Viejo 17/12/12, 00:07:25
Array

[xs_avatar]
oscar8x oscar8x no está en línea
Miembro del foro
· Votos compra/venta: (1)
 
Fecha de registro: jul 2008
Mensajes: 361
Modelo de smartphone: Huawei P30 Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por superroko2 Ver Mensaje
Como puedo hacerlo? Aunque me parece raro. Los GPS y las aplicaciones tipo Runtastic y demás buscan el GPS con la aplicación abierta.

A ver si puedes explicarme cómo esperar a la señal antes de que se abra y a ver si alguien puede encontrar el error de la mía o explicarme porque se detiene y explicarme como hacerlo para que no ocurra.
Por ejemplo, la app la estaba desarrollando en la oficina y no tenía cobertura GPS, salía afuera y conectaba con Gmaps. Cuando obtiene posición lo ves porque el icono cambia de color y aparece donde estás. Luego entraba y funcionaba ok. Usaba que obtuviese cuando conectase la última posición válida y después que actualizase con las nuevas.

El problema era que no se si sería que las nuevas serían null y haría que fallase la posición, pero si estaba un tiempo sin usar volvía a fallar si no tenía la GPS válida. No miré más a fondo porque fue con tutoriales que iba siguiendo.
Responder Con Cita
  #6  
Viejo 17/12/12, 12:32:59
Array

[xs_avatar]
superroko2 superroko2 no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Mensajes: 93
Tu operador: Movistar

Buenas,

Ya te entiendo pero no me sirve. Mi problema no es ese. Mi aplicación ya controla esas cosas que comentaste. No sé que puede fallar.

Alguien?
Responder Con Cita
  #7  
Viejo 17/12/12, 12:34:13
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Haz un logcat que para eso está, te va a decir en donde está fallando tu app.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 08:32:13 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /