使用volley上传到服务器时出错

时间:2018-06-18 16:49:35

标签: java android database

我面临关于排球库的简单问题,我的应用程序包含图像和字段需要上传到db,所以当我尝试调试错误时,我发现有nullpoint eexception。 我面临这个错误4天知道我需要一个解决方案。 感谢

Upload_Class.java

String Military_Number;// =getIntent().getExtras().getString("Military_Number"); //1
String N_ame;// =getIntent().getExtras().getString("Name"); //2
String R_ank;//=getIntent().getExtras().getString("Rank"); //3
String D_date;// =getIntent().getExtras().getString("Date_P"); //4
String ee_mail;// =getIntent().getExtras().getString("E_mail"); //5
String P_hone;// = getIntent().getExtras().getString("phone"); //6


String Qualification_Academic; // = getIntent().getExtras().getString("Qualy_acd"); //7
String Major_Academic; //  = getIntent().getExtras().getString("Major_acd"); //8
String Place_Of_Study_Academic; // = getIntent().getExtras().getString("PlaceOF_acd"); //9
String Appreciation_Academic; // = getIntent().getExtras().getString("Apprec_acd"); //10
String Grdaution_d_current_Academic;// = getIntent().getExtras().getString("Grad_acd"); //11


String major_editText_details_and_quality; //12
String place_of_study_editText_details_and_quality; //13
String dration_of_study_editText_details_and_quality; //14
String cost_of_stdy_editText_details_and_quality; // 15


String GtChoice_of_Degree; // 16


Button btn;

String img1 = "no image", img2 = "no image", img3 = "no image", img4 = "no image";

ByteArrayOutputStream baos;

final String insertUrl = "https://httpsalamnti.000webhostapp.com/test.php";

RequestQueue requestQueue;

ProgressDialog progressDialog;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.the_openion);
    btn = (Button) findViewById(R.id.Upload_Btn);

    requestQueue = Volley.newRequestQueue(this);
    progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("Uploading. Please Wait.....");
    progressDialog.setCanceledOnTouchOutside(false);



    Military_Number = getIntent().getExtras().getString("M_number");
    N_ame = getIntent().getExtras().getString("Name_P");
    R_ank = getIntent().getExtras().getString("Rank_P");
    D_date = getIntent().getExtras().getString("Date_P");
    ee_mail = getIntent().getExtras().getString("Email_P");
    P_hone = getIntent().getExtras().getString("P_hone_P");



    Qualification_Academic = getIntent().getExtras().getString("Qualy_acd");
    Major_Academic = getIntent().getExtras().getString("Major_acd");
    Place_Of_Study_Academic = getIntent().getExtras().getString("PlaceOF_acd");
    Appreciation_Academic = getIntent().getExtras().getString("Apprec_acd");
    Grdaution_d_current_Academic = getIntent().getExtras().getString("Grad_acd");



    major_editText_details_and_quality = getIntent().getExtras().getString("Pass_Major");
    place_of_study_editText_details_and_quality = getIntent().getExtras().getString("Pass_Place");
    dration_of_study_editText_details_and_quality = getIntent().getExtras().getString("Pass_Dration");
    cost_of_stdy_editText_details_and_quality = getIntent().getExtras().getString("Pass_Cost");


    GtChoice_of_Degree = getIntent().getExtras().getString("mykey");



    Intent i = getIntent();



    if(i.hasExtra("Images1"))
    {

        Uri imageUri = Uri.parse(i.getStringExtra("Images1"));
        Bitmap image = null;
        try {
            image = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
        } catch (IOException e) {
            e.printStackTrace();
        }

        baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 30, baos);
        byte[] b1 = baos.toByteArray();
        img1 = Base64.encodeToString(b1, Base64.DEFAULT);

        //Log.i("imageNew 1", img1.toString());

           int maxLogSize = 1000;
             for(int j = 0; j <= img1.length() / maxLogSize; j++) {
            int start = j * maxLogSize;
            int end = (j+1) * maxLogSize;
            end = end > img1.length() ? img1.length() : end;
            Log.i("imageNew 1", img1.substring(start, end));
        }


    }

    if(i.hasExtra("Images2"))
    {
        Uri imageUri = Uri.parse(i.getStringExtra("Images2"));
        Bitmap image = null;
        try {
            image = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
        } catch (IOException e) {
            e.printStackTrace();
        }

        baos = new ByteArrayOutputStream();

        image.compress(Bitmap.CompressFormat.JPEG, 30, baos);
        byte[] b1 = baos.toByteArray();
        img2 = Base64.encodeToString(b1, Base64.DEFAULT);


       // Log.i("imageNew 2", img2.toString());

             int maxLogSize = 1000;
        for(int j = 0; j <= img2.length() / maxLogSize; j++) {
            int start = j * maxLogSize;
            int end = (j+1) * maxLogSize;
            end = end > img2.length() ? img2.length() : end;
            Log.i("imageNew 2", img2.substring(start, end));
        }

    }

    if(i.hasExtra("Images3"))
    {
        Uri imageUri = Uri.parse(i.getStringExtra("Images3"));
        Bitmap image = null;
        try {
            image = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
        } catch (IOException e) {
            e.printStackTrace();
        }
        baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 30, baos);
        byte[] b1 = baos.toByteArray();
        img3 = Base64.encodeToString(b1, Base64.DEFAULT);

       // Log.i("imageNew 3", img3.toString());

            int maxLogSize = 1000;
        for(int j = 0; j <= img3.length() / maxLogSize; j++) {
            int start = j * maxLogSize;
            int end = (j+1) * maxLogSize;
            end = end > img3.length() ? img3.length() : end;
            Log.i("imageNew 3", img3.substring(start, end));
        }

    }

    if(i.hasExtra("Images4"))
    {
        Uri imageUri = Uri.parse(i.getStringExtra("Images4"));
        Bitmap image = null;
        try {
            image = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
        } catch (IOException e) {
            e.printStackTrace();
        }

        baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 30, baos);
        byte[] b1 = baos.toByteArray();
        img4 = Base64.encodeToString(b1, Base64.DEFAULT);


        int maxLogSize = 1000;
        for(int j = 0; j <= img4.length() / maxLogSize; j++) {
            int start = j * maxLogSize;
            int end = (j+1) * maxLogSize;
            end = end > img4.length() ? img4.length() : end;
            Log.i("imageNew 4", img4.substring(start, end));
        }

    }

    btn.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            progressDialog.show();

            StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
                @Override
                public void onResponse(String response)
                {
                    progressDialog.dismiss();
                    System.out.println(response.toString());
                    Toast.makeText(Upload_Class.this, "Uploaded successfully", Toast.LENGTH_SHORT).show();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error)
                {
                    progressDialog.dismiss();
                    Log.i("Error ", error.toString());
                    Toast.makeText(Upload_Class.this, "Failed to upload " + error, Toast.LENGTH_SHORT).show();
                }
            }) {

                @Override
                protected Map<String, String> getParams() throws AuthFailureError
                {
                    Map<String, String> parameters = new HashMap<String, String>();

                    parameters.put("Malitary_Num" , Military_Number);
                    parameters.put("Name" , N_ame);
                    parameters.put("Rank" , R_ank);
                    parameters.put("Date_OB", D_date);
                    parameters.put("Phone_Num",P_hone);
                    parameters.put("E_mail" ,ee_mail);
                    parameters.put("Qualification" , Qualification_Academic);
                    parameters.put("Major" , Major_Academic);
                    parameters.put("P_ostudy" , Place_Of_Study_Academic);
                    parameters.put("Apprecation" , Appreciation_Academic);
                    parameters.put("D_OfG" , Grdaution_d_current_Academic);
                    parameters.put("C_choice" , GtChoice_of_Degree);
                    parameters.put("Req_Major" , major_editText_details_and_quality);
                    parameters.put("Req_Pos" , place_of_study_editText_details_and_quality);
                    parameters.put("Req_Duration" , dration_of_study_editText_details_and_quality);
                    parameters.put("Req_PriceS" , cost_of_stdy_editText_details_and_quality);
                    parameters.put("image1", img1);
                    parameters.put("image2", img2);
                    parameters.put("image3", img3);
                    parameters.put("image4", img4);
                    //

                    return parameters;
                }
            };
            request.setRetryPolicy(new DefaultRetryPolicy(10000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
            requestQueue.add(request);
        }
    });

logcat的

06-18 16:41:29.638 8533-8960/com.example.computer.completionofthestudy E/Volley: [455] NetworkDispatcher.processRequest: Unhandled exception java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
    java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
        at java.net.URLEncoder.encode(URLEncoder.java:205)
        at com.android.volley.Request.encodeParameters(Request.java:491)
        at com.android.volley.Request.getBody(Request.java:477)
        at com.android.volley.toolbox.HurlStack.addBodyIfExists(HurlStack.java:245)
        at com.android.volley.toolbox.HurlStack.setConnectionParametersForRequest(HurlStack.java:219)
        at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:97)
        at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:131)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:120)
        at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:87)
06-18 16:41:29.661 8533-8551/com.example.computer.completionofthestudy D/EGL_emulation: eglMakeCurrent: 0x9ad2eb20: ver 2 0 (tinfo 0x9ad7c980)
06-18 16:41:29.700 8533-8551/com.example.computer.completionofthestudy D/EGL_emulation: eglMakeCurrent: 0x9ad2eb20: ver 2 0 (tinfo 0x9ad7c980)
06-18 16:41:29.719 8533-8533/com.example.computer.completionofthestudy I/Error: com.android.volley.VolleyError: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
06-18 16:41:29.802 8533-8551/com.example.computer.completionofthestudy D/EGL_emulation: eglMakeCurrent: 0x9ad2eb20: ver 2 0 (tinfo 0x9ad7c980)
06-18 16:41:30.231 8533-8551/com.example.computer.completionofthestudy D/EGL_emulation: eglMakeCurrent: 0x9ad2eb20: ver 2 0 (tinfo 0x9ad7c980)
06-18 16:42:39.405 8533-8533/com.example.computer.completionofthestudy I/Choreographer: Skipped 79 frames!  The application may be doing too much work on its main thread.

需要解决方案

1 个答案:

答案 0 :(得分:0)

从所有图像的代码中删除这些行,这将适用于@MohamedHassanYousifBinyousi

 int maxLogSize = 1000;
 for(int j = 0; j <= img1.length() / maxLogSize; j++) {
     int start = j * maxLogSize;
     int end = (j+1) * maxLogSize;
     end = end > img1.length() ? img1.length() : end;
     Log.i("imageNew 1", img1.substring(start, end));
}