我最近在学习领券联盟的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了...
不是告诉你找不到吗?计算机又不会骗人。你的黄油刀都没有绑定。