我已开启ButterKnife.setDebug(BuildConfig.DEBUG)
发生的事情是,现在一直工作的类无法找到视图的绑定。调用ButterKnife.bind(this);
后,视图仍然为空,当我检查日志时,我看到以下内容:
16401-16401 D/ButterKnife: Looking up binding for com.mobile.myapp.presentation.view.controllers.login.activities.WelcomeActivity
16401-16401 D/ButterKnife: Not found. Trying superclass com.mobile.myapp.presentation.view.base.myappBaseMvpActivity
16401-16401 D/ButterKnife: Not found. Trying superclass com.hannesdorfmann.mosby.mvp.MvpActivity
16401-16401 D/ButterKnife: Not found. Trying superclass android.support.v7.app.AppCompatActivity
16401-16401 D/ButterKnife: MISS: Reached framework class. Abandoning search.
所以我认为它可能是注释处理器依赖。我在每个模块中添加了以下内容:
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
但是同样的问题和没有视图得到绑定,有null。我意识到我可以切换到Kotlin,但我有很多Java类,更喜欢使用Butterknife进行绑定。我错过了什么这些问题在运行时发生。
这是一个空绑定的示例类:
public class WelcomeActivity extends myappBaseMvpActivity<WelcomeView, WelcomePresenter> implements WelcomeView {
@Nullable
@BindView(R.id.btn_showlogin)
Button btn_login; //this is null
@Nullable
@BindView(R.id.pager)
ViewPager mViewPager; //this is null, why ?
@Override
protected void onResumeFragments() {
super.onResumeFragments();
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
ButterKnife.bind(this);
mViewPager.setAdapter(new WelcomeIntroPagerAdapter(getSupportFragmentManager()));
}
//...
}
更新:我已将我的代码转换为KOTLIN以解决这些问题,但我们仍然不知道为什么BUTTERKNIFE失败。
答案 0 :(得分:0)
文件&GT;设置 - &gt;插件 - &gt; Android ButterKnife Zelezny
请按照以下步骤安装插件。
答案 1 :(得分:0)
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import this above class or check
答案 2 :(得分:0)
如果您具有Kotlin依赖关系,则应使用kapt代替注解处理器
//View Binding and Logging
implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
kapt 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
以上是AndroidX的版本,但您可以将其与现有版本一起使用。只需使用kapt! 另外,如果您已将库更新为androidx或gradle插件已更新,则应使用该库的最新版本! 让我知道是否有帮助。