2016-08-06 25 views
0

Androidのjava.lang.IllegalArgumentException:パスは空であってはなりません。の解き方?連絡先の写真を取得しようとしています。アプリケーションはクラッシュし続けます。私はそれを解決する方法を知らない。 Googleに試しても、このエラーを解決できません。写真が設定されていない連絡先は正常に動作しています。それは、それに設定された写真を持つ連絡先だけがエラーを出すだけです。Androidのjava.lang.IllegalArgumentException:パスが空であってはなりません

コード:

@Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     final Contact c = filtered_items.get(position); 
     holder.name.setText(c.name); 
     // if(c.photoUri.equals("")){ 
     if(c.photoUri == null && c!=null){ 
      holder.image.setImageResource(R.drawable.unknown_avatar); 
     }else{ 

      Picasso.with(ctx).load(c.photoUri) 
        .resize(100, 100) 
        .transform(new CircleTransform()) 
        .into(holder.image); 
     } 
     holder.lyt_parent.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       dialogAbout(c); 
      } 
     }); 

    } 

ログイン:

`FATAL EXCEPTION: main 
Process: com.example.apple.qs, PID: 32061 
java.lang.IllegalArgumentException: Path must not be empty. 
at com.squareup.picasso.Picasso.load(Picasso.java:181) 
at com.example.apple.qs.Activity.adapter.ContactListAdapter.onBindViewHolder(ContactListAdapter.java:92) 
at com.example.apple.qs.Activity.adapter.ContactListAdapter.onBindViewHolder(ContactListAdapter.java:31) 
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) 
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) 
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) 
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) 
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) 
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) 
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) 
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) 
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) 
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1077) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:122) 
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) 
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1170) 
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:814) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1187) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1465) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1702) 
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1556) 
at android.widget.LinearLayout.onLayout(LinearLayout.java:1465) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 
at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 
at android.view.View.layout(View.java:16672) 
at android.view.ViewGroup.layout(ViewGroup.java:5328) 
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2319) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2032) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1191) 
at android.view.ViewRootImpl$TraversalRun` 

答えて

0

あなたのパスをチェックする前に、ピカソ

if(c.photoUri != null && !c.photoUri.isEmpty()) 
{ 
Picasso.with(ctx).load(c.photoUri) 
       .resize(100, 100) 
       .transform(new CircleTransform()) 
       .into(holder.image); 
} 
0

を渡すnullまたはではありませんあなたが使用している場合でもピカソが失敗すること奇妙です.error(R.drawable.image)。この問題を解決するには、手動で文字列の空虚をチェックして、プロフィールの写真のパスが空の場合、いくつかのデフォルトのプレースホルダを置く必要があります。

if (c.photoUri != null && c.photoUri.isEmpty()) { 
    iview.setImageResource(R.drawable.placeholder); 
} else { 
    Picasso.with(this).load(c.photoUri) 
      .placeholder(R.drawable.avatar_gray) 
      .error(R.drawable.avatar_gray) 
      .into(holder.image); 
} 
0

がfirebaseから参照する際に画像のURLがempty.Especiallyではないことを確認してください。

if (user.getPhotoUrl().isEmpty()) { 
      Picasso.with(Profile.this).load(avata).placeholder(avata).into(profile); 
     } else {  Picasso.with(Profile.this).load(user.getPhotoUrl()).placeholder(avata).into(profile); 
      } 
関連する問題