Ich versuche, ein Bild an meinen Server zu senden. Ich tue dies, indem Sie einen Blick auf Tutorial im LINKAndroid Image Upload auf den Server von Kamera Fehler
nehmen aber ich brauche Foto von der Kamera nahm zu schicken, nicht aus der Galerie, damit ich ein paar Änderungen gemacht, und ich erhalte eine Fehlermeldung wie folgt aus:
FATALE AUSNAHME: Haupt Prozess: com.example.audriusalekna.camerapht, PID: 25792 java.lang.RuntimeException: Fehler liefert Ergebnis ResultInfo {wer = null, request = 1, result = -1, data = Intent {act = Inline-Daten (hat Extras)}} zu Aktivität {com.example.audriusalekna.camerapht/com.example.audriusalekna.camerapht.MainActivity}: java.lang.NullPointerException: Versuch, die virtuelle Methode 'boolea aufzurufen n android.graphics.Bitmap.compress (android.graphics.Bitmap $ CompressFormat, int, java.io.OutputStream) 'auf eine Null-Objekt Referenz bei android.app.ActivityThread.DeliverResults (ActivityThread.java:3887) bei Android .app.ActivityThread.handleSendResult (ActivityThread.java:3930) bei android.app.ActivityThread.access $ 1300 (ActivityThread.java:178) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1561) bei android.os.Handler.dispatchMessage (Handler.java:111) bei android.os.Looper.loop (Looper.java:194) bei android.app.ActivityThread.main (ActivityThread.java:5692) bei java.lang.reflect.Method.invoke (Native Methode) bei java.lang.reflect.Method.invoke (Methode.java:372) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit. java: 959) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:754) Verursacht von: java.lang.NullPointerException: Versuch, virtuelle Methode aufzurufen 'boolean android.graphics.Bitmap.compress (android .graphics.Bitmap $ CompressFormat, int, java.io.OutputStream) 'für einen Null-Objektverweis bei com.example.audriusalekna.camerapht.MainActivity.onActivityResult (MainActivity.java:70) bei android.app.Activity.dispatchActivityResult (Activity.java:6346) bei android.app.ActivityThread.deliverResults (ActivityThread.java:3883) bei android.app.ActivityThread.handleSendResult (ActivityThread.java:3930) bei android.app.ActivityThread.access $ 1300 (ActivityThread.java:178) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1561) bei android.os.Handler.dispatchMessage (Handler.java:111) bei android.os.Looper.loop (Looper.java:194) bei android.app.ActivityThread.main (ActivityThread.java:5692) bei java.lang.reflect.Method.invoke (systemeigene Methode) bei java.lang.reflect.Method.invoke (Method.java:372)
Mein Code von MainActivity ist hier:
package com.example.audriusalekna.camerapht;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import java.io.ByteArrayOutputStream;
import java.util.HashMap;
import java.util.Map;
import static android.R.attr.bitmap;
import static android.R.attr.x;
import static android.R.attr.y;
import static android.provider.ContactsContract.CommonDataKinds.Website.URL;
public class MainActivity extends AppCompatActivity {
static final int REQUEST_IMAGE_CAPTURE = 1;
private Uri fileUri;
private ImageView imageView;
Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button cameraBtn = (Button) findViewById(R.id.push_button);
imageView = (ImageView)findViewById(R.id.imageTest);
cameraBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, REQUEST_IMAGE_CAPTURE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
final String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);
//sending image to server
StringRequest request = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>(){
@Override
public void onResponse(String s) {
if(s.equals("true")){
Toast.makeText(MainActivity.this, "Uploaded Successful", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(MainActivity.this, "Some error occurred!", Toast.LENGTH_LONG).show();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(MainActivity.this, "Some error occurred -> "+volleyError, Toast.LENGTH_LONG).show();;
}
}) {
//adding parameters to send
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("image", imageString);
return parameters;
}
};
RequestQueue rQueue = Volley.newRequestQueue(MainActivity.this);
rQueue.add(request);
}
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri filePath = data.getData();
try {
//getting image from gallery
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
//Setting image to ImageView
imageView.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Wenn Sie das Foto senden, sehen Sie es in Ihrem 'ImageView'? – Guillaume
Ich denke, dieser Link hilft Ihnen voll http://stackoverflow.com/questions/8373755/java-lang-runtimexception-failure-delivering-result-resultinfowho-null-reque –
'java.lang.NullPointerException: Versuch, virtuelle aufzurufen Methode 'boolean android.graphics.Bitmap.compress (android.graphics.Bitmap $ CompressFormat, int, java.io.OutputStream)' auf eine Null-Objektreferenz '. Ergreifen Sie Ihre Maßnahmen. – greenapps