4

尝试在FRAGMENT中使用Butterknife时,我得到java.lang.NullPointerException。我错过了什么?在片段中使用Butterknife时发生的java.lang.NullPointerException

@Bind(R.id.tv_detail_startTime) TextView tv_detail_startTime; 

@Override 
public View onCreateView(LayoutInflater inflater, 
         @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

    v = inflater.inflate(R.layout.fragment_detail_expanlv, 
      container, false); 
    ButterKnife.bind(getActivity()); 

    //THIS IS THE LINE WHERE 
    tv_detail_startTime.setText("Trying Butterknife out in Android"); 

} 

如果我使用锅炉板代码以声明tv_detail_startTime,它的工作原理。只要使用Bind就会发生错误。

完整的堆栈跟踪:

10-29 04:30:28.971 24953-24953/com.mavdev.focusoutfacebook E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.mavdev.focusoutfacebook, PID: 24953 
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 
at  com.mavdev.focusoutfacebook.fragments.scheduledblocks.Fragment_detail_expanlv.onCreateView(Fragment_detail_expanlv.java:424) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
+0

你可以发布LogCat的**实际** stacktrace吗? –

+1

[什么是空指针异常,以及如何解决它?]可能重复(http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do -i-fix-it) – wero

+0

@BuhakeSindi完成。 – user1406716

回答

9

绑定片段不是活动

View v = inflater.inflate(R.layout.xxx, container, false); 
ButterKnife.bind(this, v); 
+1

别忘了ButterKnife.unbind(this); onDestroy –

+0

谢谢,这工作。将做'onDestroy'部分,谢谢。 – user1406716

0

ButterKnife可能假定您的活动视图结合的活动,而不是一个片段。 请尝试使用ButterKnife.bind(this, getActivity())(注意额外的这一点)。

+0

我假设你想绑定一个在你的父级活动中的视图,而不是你刚创建的片段。 Laurent Russier的回答假定该观点在片段中。根据您的使用情况使用任一种。 –

相关问题