2017-02-27 15 views
0

私は歌のアルバムアートを取得しようとしています、それはうまく動作しますが、それはクラッシュしている曲のいずれかの曲は、アプリはアルバムアートなしの他の曲でクラッシュすることはありません。 これは私が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); 
    } 

を試していますどのようなフォローコードは、任意のアルバムart.Thisなく、他の曲のために正常に動作しているが、私は取得していますエラーです。

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)  

は、だから、私はそうのtry/catchでこれをやっているアルバムアートが利用できない場合でも、それはキャッチに行くこれら2 thisを追跡しようとしたとも

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

この方法を試してみましたそれを修正する方法。

答えて

1

アルバムアートのファイルが存在するか見つかったようですが、イメージなどに読み込むことはできません。

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

は私が愚かな間違いのTHXを行いますことを知らない:

ソリューションは、あなたの通過がぼやけする画像がnullでないことを確認しています – SAVVY

関連する問題