Ошибка запуска AndroidX при переносе android.support.annotation не существует

Я только что перенес свой проект на AndroidX. Фаза синхронизации и сборки в порядке, но когда я пытаюсь запустить компилятор, я вижу эту ошибку:

error: package android.support.annotation does not exist

Эта ошибка возникает в созданном файле

// Generated code from Butter Knife. Do not modify!
package com.xdatanet.cda.Adapters;

import android.support.annotation.CallSuper; //<-- Doesn't exists
import android.support.annotation.UiThread; //<-- Doesn't exists
import android.view.View;
import android.widget.ImageView;
import butterknife.Unbinder;
import butterknife.internal.Utils;
import com.xdatanet.cda.CustomView.CDATextView;
import com.xdatanet.cda.R;
import java.lang.IllegalStateException;
import java.lang.Override;

public class CommunicationAdapter$CommunicationViewHolder_ViewBinding implements Unbinder {
  private CommunicationAdapter.CommunicationViewHolder target;

  @UiThread  //<-- First error
  public CommunicationAdapter$CommunicationViewHolder_ViewBinding(CommunicationAdapter.CommunicationViewHolder target,
      View source) {
      // Some generated code
  }

  @Override
  @CallSuper //<-- Second error
  public void unbind() {
      // Some generated code
  }
}

Свойства Gradle

android.enableJetifier=true
android.useAndroidX=true

Реализация Butterknife в gradle

implementation "com.jakewharton:butterknife:8.8.1"
annotationProcessor "com.jakewharton:butterknife-compiler:8.8.1"

IDE говорит Files under the "build" folder are generated and should not be edited.

  • Android Studio 3.2.1
  • Мин. SDK 19, Макс. SDK 28
  • Gradle версии 3.2.1

Кажется, это ошибка с масляным ножом, но я не знаю почему.


person Lorenzo Vincenzi    schedule 19.10.2018    source источник


Ответы (2)


Я бы посоветовал обновить ButterKnife до последней версии.

Я еще не перенес свои проекты на AndroidX, но из истории коммитов на странице ButterKnife на github кажется, что новейшие версии 9.0.x поддерживают AndroidX.

https://github.com/JakeWharton/butterknife

person Moonbloom    schedule 19.10.2018
comment
После обновления масляного ножа до 10.2.1 моя проблема была решена. - person Saiful Islam Sajib; 23.12.2019
comment
Это сработало для меня, тоже обновил масляный нож до 10.2.1 - person Qadir Hussain; 22.05.2021

У меня были аналогичные проблемы при переходе на androidx. эта проблема возникает из-за зависимости библиотеки Old Butter Knife.

Если вы используете нож для масла, вам следует использовать нож для масла версии не ниже 9.0.0-SNAPSHOT или выше.

implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
person Abhijeet Sharma    schedule 20.12.2019