0

Что-то не так с инъекцией ButterKnife. При запуске моего приложения, я получаю ниже ошибок:ButterKnife не вводит представления для MyFragment

01-23 11:35:36.229 23663-23663/lt.andro.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: lt.andro.myapp, PID: 23663 
java.lang.RuntimeException: Unable to inject views for MyNewFragment{528796eC#0 id=0x7f0a017c android:switcher:2131362172:1} 
     at butterknife.ButterKnife.inject(ButterKnife.java:263) 
     at butterknife.ButterKnife.inject(ButterKnife.java:207) 
     at lt.andro.myapp.BaseFragment.onViewCreated(BaseFragment.java:66) 
     at lt.andro.myapp.MyNewFragment.onViewCreated(MyNewFragment.java:117) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:961) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126) 
     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) 
     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489) 
     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486) 
     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 
     at android.support.v4.view.ViewPager.populate(ViewPager.java:1073) 
     at android.support.v4.view.ViewPager.populate(ViewPager.java:919) 
     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291) 
     at android.view.View.measure(View.java:16497) 
     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912) 
     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291) 
     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996) 
     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600) 
     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761) 
     at android.view.Choreographer. 

Похож типы @InjectView всего ножа для масла являются правильными, но до сих пор не в состоянии нож для масла, чтобы придать вид на мой новый фрагмент.

Моя раскладка выглядит следующим образом

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.SwipeRefreshLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/swipe_refresh" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler" 
     android:scrollbars="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</android.support.v4.widget.SwipeRefreshLayout> 

и мой новый фрагмент имеет этот @InjectViews:

@InjectView(R.id.swipe_refresh) SwipeRefreshLayout swipeRefreshLayout; 
@InjectView(R.id.recycler) RecyclerView list; 
+0

сделал и включают ButterKnife.inject (это) в методе OnCreate – karthikeyan

+0

Он включен в метод 'onViewCreated'. – ViliusK

+0

можно отправить свой код – karthikeyan

ответ

0

Видимо, я должен был проверки других примечаниями в нож для масла, как @OnItemClick. Я использовал его для RecyclerView, что вызывало для меня исключение RuntimeException.

1

В фрагмента вы должны использовать его в onCreateView (...)

View v = inflater.inflate(R.layout.meh, container, false); 
ButterKnife.inject(this, v); 
0

Он также платит, чтобы смотреть любые привязки вы инъекционные изнутри нагнетаемого зрения, что бросает ошибку.

В моем случае я имел фрагмент Foo, что впрыскиваемый вид в баре

// Foo.java 
View v = inflater.inflate(R.layout.bar, container, false); 
ButterKnife.inject(this, v); 

Это метание описанной ошибки. Оказывается, что в foo Я привязывался к элементу в baz, который я ожидал найти внутри моего введенного вида bar.

// Foo.java 
@InjectView(R.id.baz) 
TextView filterTextView; 

За исключением I была опечатка в "Базь в макете XML для бар

// bar.xml 
<EditText 
    android:id="@+id/bazz" 
/> 

И это вызвало Unable to inject views for...

 Смежные вопросы

  • Нет связанных вопросов^_^