我最近在学习领券联盟的app编写,到61的时候将LoadingView加入到Activity_Ticket中,也Binding了TicketActivity,可是每次运行后点击进入TicketActivity的时候一直在报错没有找到相应的LoadingView。
报错提示:
E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.reiinoki.taobaounion, PID: 13788
  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.reiinoki.taobaounion/com.reiinoki.taobaounion.ui.activity.TicketActivity}: java.lang.IllegalStateException: Required view 'ticket_cover_loading' with ID 2131296708 for field 'loadingView' was not found. If this view is optional add '@Nullable' (fields) or '@Optional' (methods) annotation.
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
   Caused by: java.lang.IllegalStateException: Required view 'ticket_cover_loading' with ID 2131296708 for field 'loadingView' was not found. If this view is optional add '@Nullable' (fields) or '@Optional' (methods) annotation.
    at butterknife.internal.Utils.findRequiredView(Utils.java:84)
    at butterknife.internal.Utils.findRequiredViewAsType(Utils.java:96)
    at com.reiinoki.taobaounion.ui.activity.TicketActivity_ViewBinding.<init>(TicketActivity_ViewBinding.java:33)
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
    at butterknife.ButterKnife.bind(ButterKnife.java:170)
    at butterknife.ButterKnife.bind(ButterKnife.java:99)
    at com.reiinoki.taobaounion.base.BaseActivity.onCreate(BaseActivity.java:19)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
LoadingView部分在xml上的代码
<com.reiinoki.taobaounion.ui.custom.LoadingView
    android:id="@+id/ticket_cover_loading"
    android:layout_height="@dimen/dp_33"
    android:layout_width="@dimen/dp_33"
    android:layout_centerInParent="true"/>
TicketActivity.java与LoadingView相关的代码
@BindView(R.id.ticket_cover_loading)
public LoadingView loadingView;
@BindView(R.id.ticket_load_retry)
public View retryLoadingText;
@Override
public void onError() {
    if (loadingView != null) {
        loadingView.setVisibility(View.GONE);
    }
    if (retryLoadingText != null) {
        retryLoadingText.setVisibility(View.VISIBLE);
    }
}
@Override
public void onTicketLoaded(String cover, TicketResult result) {
    LogUtils.debug(this, "onTicketLoaded");
    if (mCover != null && !TextUtils.isEmpty(cover)) {
        String coverPath = UrlUtils.getCoverPath(cover);
        Glide.with(this).load(coverPath).into(mCover);
    }
    if (result != null && result.getData().getTbk_tpwd_create_response() != null) {
        mTicketCode.setText(result.getData().getTbk_tpwd_create_response().getData().getModel());
    }
    if (loadingView != null) {
        loadingView.setVisibility(View.GONE);
    }
}
@Override
public void onLoading() {
    if (retryLoadingText != null) {
        retryLoadingText.setVisibility(View.GONE);
    }
    if (loadingView != null) {
        loadingView.setVisibility(View.VISIBLE);
    }
}
顺便说我试过将LoadingView标记为@Nullable倒是可以成功进入TickActivity了就是没办法操作loadingView了...
不是告诉你找不到吗?计算机又不会骗人。你的黄油刀都没有绑定。