我面临关于排球库的简单问题,我的应用程序包含图像和字段需要上传到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.
需要解决方案
答案 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));
}