Foros del Web » Programando para Internet » Android »

Error al emular android

Estas en el tema de Error al emular android en el foro de Android en Foros del Web. Saludos, estoy realizando un aplicacion android la cual debe ingresar a la base de datos mysql y hacer una consulta, el problema es que cuando ...
  #1 (permalink)  
Antiguo 08/01/2013, 10:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Error al emular android

Saludos, estoy realizando un aplicacion android la cual debe ingresar a la base de datos mysql y hacer una consulta, el problema es que cuando lo emulo y mando hacer la consulta siempre me sale este error "unfortunately, administrar empleados has stopped"...alguien sabe a que se debe este error, siempre me da el mismo error...cabe mencionar que utilizo eclipse, ya revise la base de datos y todo esta bien, les adjunto mi codigo java haber si alguien me da una mano..gracias....

Código:
package com.example.taller06oct;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class BuscarEmpleado extends ListActivity {

	String buscar;
	private static final String TAG_BUSCAR = "buscar";
	// Progress Dialog
	private ProgressDialog pDialog;

	// Creating JSON Parser object
	JSONParser jParser = new JSONParser();

	ArrayList<HashMap<String, String>> empleadosList;

	
	private static String url_all_empleados = "http://200.55.233.93/android/busqueda.php";

	// JSON Node names
	private static final String TAG_SUCCESS = "success";
	private static final String TAG_empleados = "empleados";
	private static final String TAG_CEDULA = "cedula";
	private static final String TAG_NOMBRE = "nombre";
	private static final String TAG_APELLIDO = "apellido";
	

	// empleados JSONArray
	JSONArray empleados = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.all_empleados);
		
		// getting Empleado details from intent
		Intent i = getIntent();
				
				// getting Empleado id (pid) from intent
		buscar = i.getStringExtra(TAG_BUSCAR);

		// Hashmap for ListView
		empleadosList = new ArrayList<HashMap<String, String>>();

		// Loading empleados in Background Thread
		new LoadAllempleados().execute();

		// Get listview
		ListView lv = getListView();

		// on seleting single Empleado
		// launching Edit Empleado Screen
		lv.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				// getting values from selected ListItem
				String cedula = ((TextView) view.findViewById(R.id.cedula)).getText()
						.toString();

				// Starting new intent
				Intent in = new Intent(getApplicationContext(),
						EditEmpleadosActivity.class);
				// sending pid to next activity
				in.putExtra(TAG_CEDULA, cedula);
				
				// starting new activity and expecting some response back
				startActivityForResult(in, 100);
			}
		});

	}

	// Response from Edit Empleado Activity
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		// if result code 100
		if (resultCode == 100) {
			// if result code 100 is received 
			// means user edited/deleted Empleado
			// reload this screen again
			Intent intent = getIntent();
			finish();
			startActivity(intent);
		}

	}

	/**
	 * Background Async Task to Load all Empleado by making HTTP Request
	 * */
	class LoadAllempleados extends AsyncTask<String, String, String> {

		/**
		 * Before starting background thread Show Progress Dialog
		 * */
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			pDialog = new ProgressDialog(BuscarEmpleado.this);
			pDialog.setMessage("Cargando Empleados. Please wait...");
			pDialog.setIndeterminate(false);
			pDialog.setCancelable(false);
			pDialog.show();
		}

		/**
		 * getting All empleados from url
		 * */
		protected String doInBackground(String... args) {
			// Building Parameters
			List<NameValuePair> params = new ArrayList<NameValuePair>();
			params.add(new BasicNameValuePair("buscar", buscar));
			// getting JSON string from URL
			JSONObject json = jParser.makeHttpRequest(url_all_empleados, "GET", params);
			
			// Check your log cat for JSON reponse
			Log.d("All empleados: ", json.toString());

			try {
				// Checking for SUCCESS TAG
				int success = json.getInt(TAG_SUCCESS);

				if (success == 1) {
					// empleados found
					// Getting Array of empleados
					empleados = json.getJSONArray(TAG_empleados);

					// looping through All empleados
					for (int i = 0; i < empleados.length(); i++) {
						JSONObject c = empleados.getJSONObject(i);

						// Storing each json item in variable
						String cedula = c.getString(TAG_CEDULA);
						String nombre = c.getString(TAG_NOMBRE)+ " " +c.getString(TAG_APELLIDO);
						

						// creating new HashMap
						HashMap<String, String> map = new HashMap<String, String>();

						// adding each child node to HashMap key => value
						map.put(TAG_CEDULA, cedula);
						map.put(TAG_NOMBRE, nombre);
						

						// adding HashList to ArrayList
						empleadosList.add(map);
					}
				} else {
					// no empleados found
					// Launch Add New Empleado Activity
					Intent i = new Intent(getApplicationContext(),
							NewEmpladoActivity.class);
					// Closing all previous activities
					i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
					startActivity(i);
				}
			} catch (JSONException e) {
				e.printStackTrace();
			}

			return null;
		}

		/**
		 * After completing background task Dismiss the progress dialog
		 * **/
		protected void onPostExecute(String file_url) {
			// dismiss the dialog after getting all empleados
			pDialog.dismiss();
			// updating UI from Background Thread
			runOnUiThread(new Runnable() {
				public void run() {
					/**
					 * Updating parsed JSON data into ListView
					 * */
					ListAdapter adapter = new SimpleAdapter(
							BuscarEmpleado.this, empleadosList,
							R.layout.list_item, new String[] { TAG_CEDULA,
									TAG_NOMBRE },
							new int[] { R.id.cedula, R.id.nombre });
					// updating listview
					setListAdapter(adapter);
				}
			});

		}

	}
}
  #2 (permalink)  
Antiguo 08/01/2013, 10:55
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: Error al emular android

hola, abre el logcat, y así podrás ver la traza del error completo.

Con la información que das es totalmente imposible saber que está pasando.

Saludos
  #3 (permalink)  
Antiguo 11/01/2013, 07:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Error al emular android

Salduos, ay revice el logcat pero como soy nuevo en esto de android y eclipse, no eniendo donde o q debo mirar en todo el codigo que me muestra el logcat, intente pegar aqui todo el codigo, pero el foro me bloquea ya que es demasiado texto...alguna ayuda por favor..

Menciono tambien que cuando me aparece este error "unfortunately, administrar empleados has stopped"....se me cierra la aplicacion de mi emulador....alguna idea como puedo poner el codigo del logcat aqui para que lo miren y m ayuden..gracias...
  #4 (permalink)  
Antiguo 11/01/2013, 09:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: Error al emular android

Debes copiar sólo la parte del logcat de tu error, no todo lo que te imprime que es una barbaridad.

Busca tu error (en rojo) y lo pegas.
  #5 (permalink)  
Antiguo 11/01/2013, 12:28
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Error al emular android

bueno esto es lo que m muestra en rojo el logcat:

Cita:
01-11 18:22:17.337: E/AndroidRuntime(1097): FATAL EXCEPTION: main
01-11 18:22:17.337: E/AndroidRuntime(1097): android.os.NetworkOnMainThreadException
01-11 18:22:17.337: E/AndroidRuntime(1097): at android.os.StrictMode$AndroidBlockGuardPolicy.onNe twork(StrictMode.java:1117)
01-11 18:22:17.337: E/AndroidRuntime(1097): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java: 84)
01-11 18:22:17.337: E/AndroidRuntime(1097): at libcore.io.IoBridge.connectErrno(IoBridge.java:127 )
01-11 18:22:17.337: E/AndroidRuntime(1097): at libcore.io.IoBridge.connect(IoBridge.java:112)
01-11 18:22:17.337: E/AndroidRuntime(1097): at java.net.PlainSocketImpl.connect(PlainSocketImpl.j ava:192)
01-11 18:22:17.337: E/AndroidRuntime(1097): at java.net.PlainSocketImpl.connect(PlainSocketImpl.j ava:459)
01-11 18:22:17.337: E/AndroidRuntime(1097): at java.net.Socket.connect(Socket.java:842)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.conn.scheme.PlainSocketFactory.con nectSocket(PlainSocketFactory.java:119)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.conn.DefaultClientConnectionO perator.openConnection(DefaultClientConnectionOper ator.java:144)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.conn.AbstractPoolEntry.open(A bstractPoolEntry.java:164)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.conn.AbstractPooledConnAdapte r.open(AbstractPooledConnAdapter.java:119)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.client.DefaultRequestDirector .execute(DefaultRequestDirector.java:360)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.client.AbstractHttpClient.exe cute(AbstractHttpClient.java:555)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.client.AbstractHttpClient.exe cute(AbstractHttpClient.java:487)
01-11 18:22:17.337: E/AndroidRuntime(1097): at org.apache.http.impl.client.AbstractHttpClient.exe cute(AbstractHttpClient.java:465)
01-11 18:22:17.337: E/AndroidRuntime(1097): at com.example.taller06oct.JSONParser.makeHttpRequest (JSONParser.java:62)
01-11 18:22:17.337: E/AndroidRuntime(1097): at com.example.taller06oct.EditEmpleadosActivity$GetE mpleadoDetails$1.run(EditEmpleadosActivity.java:13 4)
01-11 18:22:17.337: E/AndroidRuntime(1097): at android.os.Handler.handleCallback(Handler.java:725 )
01-11 18:22:17.337: E/AndroidRuntime(1097): at android.os.Handler.dispatchMessage(Handler.java:92 )
01-11 18:22:17.337: E/AndroidRuntime(1097): at android.os.Looper.loop(Looper.java:137)
01-11 18:22:17.337: E/AndroidRuntime(1097): at android.app.ActivityThread.main(ActivityThread.jav a:5039)
01-11 18:22:17.337: E/AndroidRuntime(1097): at java.lang.reflect.Method.invokeNative(Native Method)
01-11 18:22:17.337: E/AndroidRuntime(1097): at java.lang.reflect.Method.invoke(Method.java:511)
01-11 18:22:17.337: E/AndroidRuntime(1097): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:793)
01-11 18:22:17.337: E/AndroidRuntime(1097): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:560)
01-11 18:22:17.337: E/AndroidRuntime(1097): at dalvik.system.NativeStart.main(Native Method)
  #6 (permalink)  
Antiguo 14/01/2013, 04:38
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: Error al emular android

A ver, tienes que empezar a entender Android, o no vas a poder avanzar en la programación, lo primero es interpretar lo que te dice el logCat:

El problema en tu código está en:

Código:
01-11 18:22:17.337: E/AndroidRuntime(1097): at com.example.taller06oct.JSONParser.makeHttpRequest (JSONParser.java:62)
01-11 18:22:17.337: E/AndroidRuntime(1097): at com.example.taller06oct.EditEmpleadosActivity$GetE mpleadoDetails$1.run(EditEmpleadosActivity.java:13 4)
Y el erro que te está dando es:

Código:
01-11 18:22:17.337: E/AndroidRuntime(1097): android.os.NetworkOnMainThreadException
01-11 18:22:17.337: E/AndroidRuntime(1097): at android.os.StrictMode$AndroidBlockGuardPolicy.onNe twork(StrictMode.java:1117)
Ahora con google y un poquito de inglés sabrás enseguida que está pasando.
  #7 (permalink)  
Antiguo 14/01/2013, 07:30
 
Fecha de Ingreso: septiembre-2008
Mensajes: 257
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Error al emular android

Revisando lo que menciona, pero lo unico que puede entender (buscando en google) es que al parecer debo utilizar AsyncTask..estoy en lo correcto..??? si es asi..como lo hago..???

Y tambien algo q entendi es que "E/AndroidRuntime(1097): at com.example.taller06oct.JSONParser.makeHttpRequest (JSONParser.java:62)" es por algun error en la URL de donde mando a buscar los archivos php que hacen de webservis...bueno espero su ayuda a ver si logro solucionar este problema q tengo...gracias..

Etiquetas: activity, eclipse, java, todo, apps, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:57.