2017-07-29 12 views
0

は私のアプリがクラッシュしたと私は私の見解でDeatilFragementを開こうとする場合、私は、エラーが以下の取得:Androidの詳細断片

public ArticleDetailFragment_ViewBinding(ArticleDetailFragment target, View source) { 
    this.target = target; 

    target.login = Utils.findRequiredViewAsType(source, R.id.login, "field 'login'", TextView.class); 

BaseFragmentはこれに言及:

Caused by: java.lang.IllegalStateException: Required view 'login' with ID 2131558406 for field 'login' was not found. If this view is optional add '@Nullable' (fields) or '@Optional' (methods) annotation. at butterknife.internal.Utils.findRequiredView(Utils.java:92) at butterknife.internal.Utils.findRequiredViewAsType(Utils.java:104) at de.dev.myapp.ui.quote.ArticleDetailFragment_ViewBinding.(ArticleDetailFragment_ViewBinding.java:23) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:430) at butterknife.ButterKnife.createBinding(ButterKnife.java:199) at butterknife.ButterKnife.bind(ButterKnife.java:172) at de.dev.myapp.ui.base.BaseFragment.inflateAndBind(BaseFragment.java:29) at de.dev.myapp.ui.quote.ArticleDetailFragment.onCreateView(ArticleDetailFragment.java:69)

ArticleDetailFragment_ViewBindingはこのラインを指し、行:

public View inflateAndBind(LayoutInflater inflater, ViewGroup container, int layout) { 
    View view = inflater.inflate(layout, container, false); 
    ButterKnife.bind(this, view); // this line 

    LogUtil.logD(TAG, ">>> view inflated"); 
    return view; 
} 

そして、記事の詳細は次の行を参照してください。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflateAndBind(inflater, container, R.layout.fragment_article_detail); // this line 

    if (!((BaseActivity) getActivity()).providesActivityToolbar()) { 
     // No Toolbar present. Set include_toolbar: 
     ((BaseActivity) getActivity()).setToolbar((Toolbar) rootView.findViewById(R.id.toolbar)); 
    } 

    if (dummyItem != null) { 
     loadBackdrop(); 
     collapsingToolbar.setTitle(dummyItem.title); 
     author.setText(dummyItem.author); 
     quote.setText(dummyItem.content); 
    } 

    return rootView; 
} 

そして、これは私はこれがあなたのエラーです

@Override 
    public void onItemSelected(String id) { 
     if (twoPaneMode) { 
      // Show the quote detail information by replacing the DetailFragment via transaction. 
      ArticleDetailFragment fragment = ArticleDetailFragment.newInstance(id); 
      getFragmentManager().beginTransaction().replace(R.id.article_detail_container, fragment).commit(); 
     } else { 
      // Start the detail activity in single pane mode. 
      Intent detailIntent = new Intent(this, ArticleDetailActivity.class); 
      detailIntent.putExtra(ArticleDetailFragment.ARG_ITEM_ID, id); 
      startActivity(detailIntent); 
     } 
    } 

答えて

1

詳細ページに移動するには、各項目を選択する方法である:

java.lang.IllegalStateException: 
    Required view 'login' with ID 2131558406 for field 'login' was not found. 
    If this view is optional add '@Nullable' (fields) or '@Optional' (methods) 

それはあなたのArticleDetailFragmentことを非常に可能性が高いことを意味します次の行が含まれます。

@BindView(R.id.login) 
private View login; 

問題は、フラグメントのレイアウト内に属性android:id="@+id/login"のビューが存在しないことです。このビューを追加するか、id属性を修正するか、View@Nullableとマークします。

+0

「@ Nullable」が追加されました – utdev