2017-02-27 1 views
0

Ich versuche, das Lied Album Kunst zu bekommen und es zu verwischen es funktioniert gut, aber für eines der Song es wird abgestürzt das Lied enthalten keine Album Kunst, aber Die App wird für andere Songs ohne Albumcover nicht abgestürzt. Das ist, was ichFehler in int android.graphics.Bitmap.getWidth()

Uri myUri = Uri.parse(Singleton.getInstance().getAlbum_art()); 
    try { 

     InputStream image_stream = getContentResolver().openInputStream(myUri); 
     Bitmap bitmap = BitmapFactory.decodeStream(image_stream); 
     Bitmap blurredBitmap = GaussianBlur.with(this).maxSixe(100).render(bitmap); 
     if (blurredBitmap != null) { 
      imageView.setImageBitmap(blurredBitmap); 
     } 


    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
     Bitmap blurredBitmap = GaussianBlur.with(this).maxSixe(100) 
       .render(R.drawable.music); 
     imageView.setImageBitmap(blurredBitmap); 
    } 

Der Code folgen versucht bin arbeitet für andere Songs fein ohne Album art.This ist der Fehler, ich erhalte.

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: beatbox.neelay.another2, PID: 25757 
       java.lang.RuntimeException: Unable to resume activity {beatbox.neelay.another2/beatbox.neelay.another2.Main2Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference 
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3110) 
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3141) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2488) 
        at android.app.ActivityThread.access$900(ActivityThread.java:153) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5441) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628) 
       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference 
        at com.vansuita.gaussianblur.GaussianBlur.scaleDown(GaussianBlur.java:76) 
        at com.vansuita.gaussianblur.GaussianBlur.render(GaussianBlur.java:45) 
        at beatbox.neelay.another2.Main2Activity.update(Main2Activity.java:173) 
        at beatbox.neelay.another2.Main2Activity.onResume(Main2Activity.java:160) 
        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1259) 
        at android.app.Activity.performResume(Activity.java:6379) 
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3099) 
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3141)  
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2488)  
        at android.app.ActivityThread.access$900(ActivityThread.java:153)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:148)  
        at android.app.ActivityThread.main(ActivityThread.java:5441)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)  

Also habe ich versucht auf diese Weise, diese beiden this und auch versucht, auf den Fang

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
Bitmap bitmap = BitmapFactory.decodeFile(objElement, options); 

Ich tue dies in try/catch so, auch wenn die Album-Cover nicht verfügbar ist, es geht zu folgen blockieren und es wird auch für den Rest der Songs gehen. Wie das zu beheben.

Antwort

1

Es scheint, dass die Datei für die Album Art vorhanden ist oder gefunden werden kann, aber nicht in ein Bild oder etwas Ähnliches gelesen werden kann.

Die Lösung sorgt dafür, dass das Bild Ihre Weitergabe nicht null verwischt werden soll:

InputStream image_stream = getContentResolver().openInputStream(myUri); 
Bitmap bitmap = BitmapFactory.decodeStream(image_stream); 
if (bitmap != null) { 
    Bitmap blurredBitmap = GaussianBlur.with(this).maxSixe(100).render(bitmap); 
    if (blurredBitmap != null) { 
     imageView.setImageBitmap(blurredBitmap); 
    } 
} else { 
    Bitmap blurredBitmap = GaussianBlur.with(this).maxSixe(100) 
      .render(R.drawable.music); 
    imageView.setImageBitmap(blurredBitmap); 
} 
+0

weiß nicht, dass ich einen dummen Fehler thx tun – SAVVY

Verwandte Themen