web-dev-qa-db-ja.com

移行中の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

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

バターナイフのエラーのようですが、理由はわかりません。

7

バターナイフを最新バージョンに更新することをお勧めします。

私はまだプロジェクトをAndroidXに移行していませんが、ButterKnife githubページのコミット履歴から、最新の9.0.xバージョンがAndroidXをサポートしているようです。

https://github.com/JakeWharton/butterknife

3
Moonbloom

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'
0
Abhijeet Sharma