android app没有连接到mysql数据库

时间:2016-04-29 12:53:28

标签: android mysql xampp

我正在尝试在Android studio中构建登录活动,并使用xampp server连接到mysql数据库。尝试使用jTDS.jar,sqljdbc.jar,mysql-connector-java.jar.But没有任何帮助。

调试时我收到以下异常。 logcat的 -

04-29 08:43:05.904 29384-29384/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.requestPermissions, referenced from method com.example.somya.client_feedback_application.MainActivity.access$super
04-29 08:43:05.904 29384-29384/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 193: Landroid/app/Activity;.requestPermissions ([Ljava/lang/String;I)V
04-29 08:43:05.916 29384-29384/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.onRequestPermissionsResult, referenced from method com.example.somya.client_feedback_application.MainActivity.access$super
04-29 08:43:05.916 29384-29384/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 160: Landroid/app/Activity;.onRequestPermissionsResult (I[Ljava/lang/String;[I)V
04-29 08:43:05.916 29384-29384/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.requestVisibleBehind, referenced from method com.example.somya.client_feedback_application.MainActivity.access$super
04-29 08:43:05.916 29384-29384/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 194: Landroid/app/Activity;.requestVisibleBehind (Z)Z
04-29 08:43:05.916 29384-29384/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.shouldShowRequestPermissionRationale, referenced from method com.example.somya.client_feedback_application.MainActivity.access$super
04-29 08:43:05.916 29384-29384/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 227: Landroid/app/Activity;.shouldShowRequestPermissionRationale (Ljava/lang/String;)Z

和我的JsonParser.java -

import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;

public class JSONParser {

    String charset = "UTF-8";
    HttpURLConnection conn;
    DataOutputStream wr;
    StringBuilder result;
    URL urlObj;
    JSONObject jObj = null;
    StringBuilder sbParams;
    String paramsString;

    public JSONObject makeHttpRequest(String url, String method,
                                      HashMap<String, String> params) {

        sbParams = new StringBuilder();
        int i = 0;
        for (String key : params.keySet()) {
            try {
                if (i != 0){
                    sbParams.append("&");
                }
                sbParams.append(key).append("=")
                        .append(URLEncoder.encode(params.get(key), charset));

            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            i++;
        }

        if (method.equals("POST")) {
            // request method is POST
            try {
                urlObj = new URL(url);

                conn = (HttpURLConnection) urlObj.openConnection();

                conn.setDoOutput(true);

                conn.setRequestMethod("POST");

                conn.setRequestProperty("Accept-Charset", charset);

                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);

                conn.connect();

                paramsString = sbParams.toString();

                wr = new DataOutputStream(conn.getOutputStream());
                wr.writeBytes(paramsString);
                wr.flush();
                wr.close();

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        else if(method.equals("GET")){
            // request method is GET

            if (sbParams.length() != 0) {
                url += "?" + sbParams.toString();
            }

            try {
                urlObj = new URL(url);

                conn = (HttpURLConnection) urlObj.openConnection();

                conn.setDoOutput(false);

                conn.setRequestMethod("GET");

                conn.setRequestProperty("Accept-Charset", charset);

                conn.setConnectTimeout(15000);

                conn.connect();

            } catch (IOException e) {
                e.printStackTrace();
            }

        }

        try {
            //Receive the response from the server
            InputStream in = new BufferedInputStream(conn.getInputStream());
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            result = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                result.append(line);
            }

            Log.d("JSON Parser", "result: " + result.toString());

        } catch (IOException e) {
            e.printStackTrace();
        }

        conn.disconnect();

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(result.toString());
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON Object
        return jObj;
    }
}

运行应用程序后,Logcat说 -

04-29 15:12:55.550 19793-19793/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.requestPermissions, referenced from method com.example.somya.client_feedback_application.Login.access$super
04-29 15:12:55.550 19793-19793/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 193: Landroid/app/Activity;.requestPermissions ([Ljava/lang/String;I)V
04-29 15:12:55.570 19793-19793/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.onRequestPermissionsResult, referenced from method com.example.somya.client_feedback_application.Login.access$super
04-29 15:12:55.570 19793-19793/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 160: Landroid/app/Activity;.onRequestPermissionsResult (I[Ljava/lang/String;[I)V
04-29 15:12:55.570 19793-19793/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.requestVisibleBehind, referenced from method com.example.somya.client_feedback_application.Login.access$super
04-29 15:12:55.570 19793-19793/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 194: Landroid/app/Activity;.requestVisibleBehind (Z)Z
04-29 15:12:55.570 19793-19793/com.example.somya.client_feedback_application I/dalvikvm: Could not find method android.app.Activity.shouldShowRequestPermissionRationale, referenced from method com.example.somya.client_feedback_application.Login.access$super
04-29 15:12:55.570 19793-19793/com.example.somya.client_feedback_application W/dalvikvm: VFY: unable to resolve virtual method 227: Landroid/app/Activity;.shouldShowRequestPermissionRationale (Ljava/lang/String;)Z
04-29 15:13:09.773 19793-19793/com.example.somya.client_feedback_application D/request: starting pre exe
04-29 15:13:09.777 19793-20440/com.example.somya.client_feedback_application D/request: starting
04-29 15:13:12.101 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
04-29 15:13:12.101 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
04-29 15:13:12.101 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.example.somya.client_feedback_application.JSONParser.makeHttpRequest(JSONParser.java:66)
04-29 15:13:12.117 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
04-29 15:13:12.125 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
04-29 15:13:12.125 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.example.somya.client_feedback_application.JSONParser.makeHttpRequest(JSONParser.java:66)
04-29 15:13:12.133 19793-20440/com.example.somya.client_feedback_application W/System.err:     at com.example.somya.client_feedback_application.JSONParser.makeHttpRequest(JSONParser.java:127)
04-29 15:13:12.141 19793-19793/com.example.somya.client_feedback_application D/request: starting post
04-29 15:13:24.193 77-77/? W/Genyd: Can't parse request

Login.java活动

public class Login extends Activity {
    AutoCompleteTextView UsernameEt;

    EditText PasswordEt;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);


        UsernameEt = (AutoCompleteTextView) findViewById(R.id.email);

        PasswordEt = (EditText) findViewById(R.id.password);



    }
    class PostAsync extends AsyncTask<String, String, JSONObject> {
        JSONParser jsonParser = new JSONParser();

        private ProgressDialog pDialog;

        private static final String LOGIN_URL = "http://10.0.3.2:8080/login2.php";




        private static final String TAG_SUCCESS = "success";
        private static final String TAG_MESSAGE = "message";


        @Override
        protected void onPreExecute() {
            pDialog = new ProgressDialog(Login.this);
            pDialog.setMessage("Attempting login...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
            Log.d("request", "starting pre exe");
        }


        @Override
        protected JSONObject doInBackground(String... args) {

            try {

                HashMap<String, String> params = new HashMap<>();
                params.put("name", args[0]);
                params.put("password", args[1]);

                Log.d("request", "starting");

                JSONObject json = jsonParser.makeHttpRequest(
                        LOGIN_URL, "POST", params);

                if (json != null) {
                    Log.d("JSON result", json.toString());

                    return json;
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

        protected void onPostExecute(JSONObject json) {

            int success = 0;
            String message = "";
            Log.d("request", "starting post");

            if (pDialog != null && pDialog.isShowing()) {
                pDialog.dismiss();
            }

            if (json != null) {
                Toast.makeText(Login.this, json.toString(),
                        Toast.LENGTH_LONG).show();

                try {
                    success = json.getInt(TAG_SUCCESS);
                    message = json.getString(TAG_MESSAGE);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            if (success == 1) {
                Log.d("Success!", message);
                Intent intent = new Intent(Login.this,Feedback_Form.class);
                startActivity(intent);
                Log.d("request", "success 1");
            }else{
                Log.d("Failure", message);
            }
        }

    }

    public void OnLogin(View view) {
        String username = UsernameEt.getText().toString();
        String password = PasswordEt.getText().toString();

        new PostAsync().execute(username, password);

    }
}

0 个答案:

没有答案