プロジェクトを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.
と言います
バターナイフのエラーのようですが、理由はわかりません。
バターナイフを最新バージョンに更新することをお勧めします。
私はまだプロジェクトをAndroidXに移行していませんが、ButterKnife githubページのコミット履歴から、最新の9.0.xバージョンがAndroidXをサポートしているようです。
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'