>
Boa tarde, meu codigo não cadastra e não consigo achar o erro, sempre que rodo ele fala que o aplicativo parou de funcionar.
package mmarques.com.br.androidcommysql;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class CadastroActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cadastro);
Button btnCadastro = (Button) findViewById(R.id.btnCadastro);
btnCadastro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText txtNome = (EditText) findViewById((R.id.txtNome));
EditText txtEmail = (EditText) findViewById((R.id.txtEmail));
try{
StringBuilder strURL = new StringBuilder();
strURL.append("http://192.168.0.105/inserir.php?");
strURL.append("nome=");
strURL.append(URLEncoder.encode(txtNome.getText().toString(), "UTF-8"));
strURL.append("&email=");
strURL.append(URLEncoder.encode(txtEmail.getText().toString(), "UTF-8"));
new HttpRequest().execute(strURL.toString());
} catch (Exception ex){
}
}
});
}
private class HttpRequest extends AsyncTask{
@Override
protected String doInBackground(String... params) {
String retorno = null;
try {
String urlHttp = params[0];
URL url = new URL(urlHttp);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
InputStreamReader ips = new InputStreamReader(http.getInputStream());
BufferedReader bfr = new BufferedReader(ips);
retorno = bfr.readLine();
} catch (Exception ex){
}
return retorno;
}
@Override
protected void onPostExecute(String result){
if (result.equals("YES")){
Toast.makeText(getBaseContext(), "Cliente cadastrado com sucesso!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(getBaseContext(), ListarActivity.class));
}else {
Toast.makeText(getBaseContext(), "Erro ao cadastrar o cliente!", Toast.LENGTH_SHORT).show();
}
}
}
}
Olá
Você adicionou permissão de INTERNET?
Sim. Já cheguei a desinstalar e instalar o Android Studio.
O engraçado é que fiz isso e agora o erro mudou de lugar, fala que parou também porém mostra o erro na linha 27 do código acima.
Estou usando a versão estável a 1.5.1, pode ter alguma coisa a ver?
Pois pelo que eu entendi no curso usa a versão preview.
Você tem o botão btnCadastro no layout activity_cadastro?
Não pode ser erro de versão, pois o curso foi testando também nessa IDE.
Eu realmente tinha me esquecido de colocar o nome no botão, porém mesmo colocando o erro continua.
Entro na tela de cadastro e na hora que clico em salvar ele gera o erro na linha 52 e 71.
Olá
Qual erro gerado nessas linhas?
04-12 02:49:06.255 4444-4474/br.com.mmarques.androidcommysql E/Surface: getSlotFromBufferLocked: unknown buffer: 0xab7d1840
04-12 02:49:09.110 4444-4444/br.com.mmarques.androidcommysql D/AndroidRuntime: Shutting down VM
04-12 02:49:09.110 4444-4444/br.com.mmarques.androidcommysql E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.mmarques.androidcommysql, PID: 4444
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at br.com.mmarques.androidcommysql.CadastroActivity$HttpRequest.onPostExecute(CadastroActivity.java:73)
at br.com.mmarques.androidcommysql.CadastroActivity$HttpRequest.onPostExecute(CadastroActivity.java:48)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-12 02:49:12.211 9779-9779/br.com.mmarques.androidcommysql W/System: ClassLoader referenced unknown path: /data/app/br.com.mmarques.androidcommysql-2/lib/x86
Bom dia,
Consegui descobrir qual era o problema.
O wamp estava com negação para acesso atraves do IP foi feito a liberação no httpd no apache e o sistema funcionou.
Segue a alteração:
# Require all granted
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all - ALTERE ESSA OPÇÃO PARA ALLOW E IRÁ FUNCIONAR.
Allow from 127.0.0.1
Allow from ::1
Allow from localhost
Obrigado pela atenção.