Eclipse の Android アプリケーションから外部データベースに接続しています。PHP と JSON を使用した MySQL サーバーです。問題は、ローカルホストからテストするとすべてがうまくいくが、Web サーバーの URL を指定するためにアプリケーションが閉じられることです。
private ProgressDialog pDialog;
public static String mensaje_bienvenida = "com.example.AndroidConnectingToPhpMySQL.MESSAGE";
Button btnLogin;
EditText txtNick;
EditText txtClave;
JSONParser jsonParser = new JSONParser();
//private static String url_usu = "http://10.0.2.2/SistemaMedico/verificarusuario.php";
//ip orange ventas: 207.58.133.155
private static String url_usu = "http://www.orangeventas.com/SistemaMedico/verificarusuario.php";
private static final String TAG_SUCCESS = "success";
private static final String TAG_USUARIO = "usuario";
private static final String TAG_NICK = "nick";
private static final String TAG_CLAVE = "clave";
private static final String TAG_IDUSU = "idusu";
private static final String TAG_IDPER = "idper";
private static final String TAG_NOMBRE = "nombre";
private static final String TAG_SEXO = "sexo";
String nick;
String clave;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_screen);
/*StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);*/
//Le damos a las variables las propiedades de sus respectivos controles
btnLogin = (Button)findViewById(R.id.login);
txtNick = (EditText)findViewById(R.id.nick);
txtClave = (EditText)findViewById(R.id.clave);
//Evento clic del botón
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(txtNick.getText().toString().trim().length() > 0)
{
if(txtClave.getText().toString().trim().length() >= 6)
{
nick = txtNick.getText().toString().trim();
clave = txtClave.getText().toString().trim();
new ValidarUsuario().execute();
}
else
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainScreenActivity.this);
builder.setTitle("Mensaje");
builder.setMessage("Ingrese Clave");
builder.setPositiveButton("Aceptar", null);
builder.create();
builder.show();
txtClave.requestFocus();
}
}
else
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainScreenActivity.this);
builder.setTitle("Mensaje");
builder.setMessage("Ingrese Nick de Usuario");
builder.setPositiveButton("Aceptar", null);
builder.create();
builder.show();
txtNick.requestFocus();
}
}
});
}
class ValidarUsuario extends AsyncTask<String, String, String>
{
/*
@Override
protected void onPreExecute()
{
super.onPreExecute();
pDialog = new ProgressDialog(MainScreenActivity.this);
pDialog.setMessage("Loading products. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}*/
protected String doInBackground(String...params)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
int success;
try
{
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(TAG_NICK, nick));
params.add(new BasicNameValuePair(TAG_CLAVE, clave));
JSONObject json = jsonParser.makeHttpRequest(url_usu, "POST", params);
Log.d("Validando Usuario", json.toString());
success = json.getInt(TAG_SUCCESS);
if(success == 1)
{
JSONArray usuarioObj = json.getJSONArray(TAG_USUARIO);
JSONObject usuario = usuarioObj.getJSONObject(0);
/*
Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
intent.putExtra(mensaje_bienvenida, usuario.getString(TAG_NOMBRE));*/
String genero = "BIENVENIDO";
final String nusu = usuario.getString(TAG_NOMBRE);
//mensaje_bienvenida = nusu;
if(usuario.getString(TAG_SEXO)=="F")
{
genero = "BIENVENIDA";
}
AlertDialog.Builder builder = new AlertDialog.Builder(MainScreenActivity.this);
builder.setTitle("Mensaje");
builder.setMessage(genero + " " + usuario.getString(TAG_NOMBRE));
/*
builder.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Log.i("Dialogo", "Aceptado");
Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
intent.putExtra(mensaje_bienvenida, nusu);
startActivity(intent);
}
});*/
builder.create();
builder.show();
Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
intent.putExtra(mensaje_bienvenida, nusu);
startActivity(intent);
}
else
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainScreenActivity.this);
builder.setTitle("Mensaje");
builder.setMessage("Intente nuevamente");
builder.setPositiveButton("Aceptar", null);
builder.create();
builder.show();
txtClave.setText("");
txtClave.requestFocus();
}
}
catch(JSONException ex)
{
ex.printStackTrace();
}
}
});
return null;
}
}
デバッグ エラーが表示されます: ソース添付ファイルには、ファイル InvocationTargetException.class のソースが含まれていません。
しかし、ローカルホストからはすべて正常に実行されることを繰り返します。私は助けが必要です。ありがとうございました。