ButterKnife не связывает взгляды и вызывает исключения - PullRequest
2 голосов
/ 08 января 2020

Я использую Butterknife (10.2.1) для привязки представлений в проекте. Недавно я перенес его на AndroidX.

Хотя я делаю все в соответствии с документацией здесь Позвонив по номеру

@BindView(R.id.layout_purchase_item1)
View layoutPurchaseItem1;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_purchase);
  ButterKnife.bind(this);
  layoutPurchaseItem1.setOnClickListener(this);

Это не работает и дает следующие исключения:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        at com.sdf.bp.billings.PurchaseActivity.onCreate(PurchaseActivity.java:108)

Ясно, что Представления здесь не являются обязательными, но я не сделал ничего плохого в файле макета, так как простая замена привязки на findViewById заботится об исключении. Но я хочу использовать Butterknife. Любые идеи?

Ответы [ 3 ]

1 голос
/ 09 января 2020

Я применил kapt 'com.jakewharton:butterknife-compiler:10.2.1' раньше. Я пытался очистить кэш Android Studio с помощью Invalidate Cache и Restart, но это тоже не сработало. Сегодня я удалил .gradle и .idea, и после повторной синхронизации проекта проблема была исправлена.

1 голос
/ 08 января 2020

Не могли бы вы обновить свой build.gradle с приведенными ниже зависимостями.

implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'

После обновления введите вид с помощью butterknife.

0 голосов
/ 08 января 2020

Добавьте следующие строки в файл gradle под тегом buildTypes

   ` lintOptions {
    disable 'RestrictedApi'
}
compileOptions {
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
}

и в файл gradle моего проекта

classpath 'com.android.tools.build:gradle:3.4.2'

В моем случае это работает в той же версии 10.2.1 с androidX

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...