You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio及JDK升级后ButterKnife编译异常的正规方案咨询

正规解决办法

1. 升级ButterKnife到最新兼容版本

ButterKnife后期版本(如10.2.3)已经修复了JDK模块化下的内部API访问问题。直接在app级build.gradle里更新依赖:

dependencies {
  implementation 'com.jakewharton:butterknife:10.2.3'
  annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
}

同步项目后重新编译,只要版本适配就能解决这个错误。

2. 换成官方ViewBinding(推荐长期方案)

毕竟ButterKnife早已停止维护,官方现在推荐用ViewBinding替代,这是Android Jetpack自带的原生视图绑定方案,无需依赖第三方库,还能完美适配新版JDK和Android Studio:

开启ViewBinding

在app级build.gradle的android块中添加配置:

android {
  ...
  buildFeatures {
    viewBinding true
  }
}

替换ButterKnife代码

原ButterKnife写法:

public class MainActivity extends AppCompatActivity {
  @BindView(R.id.text_view) TextView textView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    textView.setText("Hello");
  }
}

改成ViewBinding写法:

public class MainActivity extends AppCompatActivity {
  private ActivityMainBinding binding;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    binding = ActivityMainBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
    binding.textView.setText("Hello");
  }
}

ViewBinding会自动为每个布局文件生成对应的绑定类(比如activity_main.xml对应ActivityMainBinding),类型安全且无需手动编写注解,彻底避开第三方库的兼容性坑。

3. 适配JDK模块化规则(不推荐,仅临时过渡)

要是暂时没法升级或替换,也能通过JVM参数开放内部API访问——就是你之前找到的临时办法,本质是绕开模块化检查,并非长期正规方案:

android {
  ...
  tasks.withType(JavaCompile) {
    options.compilerArgs += [
      '--add-exports', 'jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
      '--add-exports', 'jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
      '--add-exports', 'jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
    ]
  }
}

内容的提问来源于stack exchange,提问作者C0D3M0N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:13:10