迁移AndroidX运行错误android.support.annotation不存在

时间:2018-10-19 09:01:03

标签: java android mobile migration androidx

我刚刚将项目迁移到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
  }
}

渐变属性

android.enableJetifier=true
android.useAndroidX=true

黄油刀的实现逐渐发展

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
  • 版本3.2.1

黄油刀似乎是一个错误,但我不知道为什么。

2 个答案:

答案 0 :(得分:3)

我建议将ButterKnife更新到最新版本。

我还没有将项目迁移到AndroidX,但是从ButterKnife github页面上的提交历史来看,最新的9.0.x版本似乎支持AndroidX。

https://github.com/JakeWharton/butterknife

答案 1 :(得分:0)

在迁移到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'