2016-05-04 12 views
0

Ich habe ein Fragment, das Daten enthält, die an eine andere Aktivität gesendet werden. Das Senden und Abrufen von Extras aus der Absicht funktioniert, aber nicht für andere Byte-Arrays. Bitte schauen Sie hinein.Fehler beim Liefern des Ergebnisses ResultInfo {who = null, request = 129742, result = -1, data = Intent {(hat Extras)}} to Aktivität

Fragment Klasse

 String userId = profile.getId(); 
     Bitmap bitmap = getFacebookProfilePicture(userId); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
     byte[] byteArray = stream.toByteArray(); 
     Intent myIntent = new Intent(getActivity(), Main2Activity.class); 
     myIntent.putExtra("name",name); 
     myIntent.putExtra("image",byteArray); 
     getActivity().startActivity(myIntent); 

MAIN2ACTIVITY

Intent intent = getIntent(); 
    String name = intent.getExtras().getString("name"); 
    byte[] byteArray = intent.getExtras().getByteArray("image"); 
    Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 

Die dritte Zeile main2activity wirft Fehler: Fehler liefert Ergebnis result {die null =, request = 129.742, Ergebnis = -1, data = Intent {(hat Extras)}} zu Aktivität

Dies scheint um der Hauptfehler zu sein verursacht durch: java.lang.NullPointerException: Versuch, virtuelle Methode 'boolean android.graphics.Bitmap.compress (android.graphics.Bitmap $ CompressFormat, int, java.io.OutputStream)' auf einem null aufzurufen Objektverweis

+0

Ist das der einzige Fehler? Kannst du den kompletten Stacktrace posten? – varunkr

+0

@varunkr kann dies der Grund sein: Verursacht von: java.lang.NullPointerException: Versuch, virtuelle Methode aufzurufen 'boolean android.graphics.Bitmap.compress (android.graphics.Bitmap $ CompressFormat, int, java.io.OutputStream) 'auf einem Nullobjekt Referenz –

+0

ja das ist der Hauptfehler – varunkr

Antwort

0

Sie können auch so versuchen ..

Bundle bundle = getIntent().getExtras(); 
if(bundle!=null){ 
String name =bundle.getString("name"); 
    byte[] byteArray =getIntent().getByteArrayExtra("image"); 
    Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
} 

getestet Es wird sicher helfen ...

+0

Neben der Null-Überprüfung, was unterscheidet es? –

+0

@ trigger..here..null Überprüfung ist das wichtigste ... Ich möchte es fett machen, wenn die Antwort –

+0

@trigger ... hier Intent-Empfänger warf eine Ausnahme Und ich kann die NullPointerException hier sehen –

0

Aus dem Fehler, den Sie in den Kommentaren gepostet

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference 

es sieht aus wie Fehler bei bitmap.compress Zeile ist, was bedeutet, dass die Bitmap, die Sie auf diese Weise erhalten, null ist.

Bitmap bitmap = getFacebookProfilePicture(userId); 

Deshalb gibt es einen Fehler beim Aufruf von bitmap.compress. Versuchen Sie diese Funktion zu überprüfen, Sie können den Debugger auch zur Bestätigung verwenden.