提问者:小点点

如何在Android Studio中使用ButterKnife修复此错误?


构建成功,但在模拟器上运行失败,并在控制台中显示以下消息:

原因:超类访问检查失败:类ButterKnifeProcator$RScanner(在未命名模块@0x65e8e2f6中)无法访问类com.sun.tools. javac.tree.TreeScanner(在模块jdk.compiler中),因为模块jdk.compiler不会将com.sun.tools.javac.tree导出到未命名模块@0x65e8e2f6

我尝试过的:从Gradle中删除Butter人刀,同步,添加回来,再次同步。完全删除Butter人刀库,它不会在编译时产生此错误,但由于缺少Butter人刀,显然无法编译。

我的环境:黄油刀10.2.3 Android级插件版本:7.1.2-Gradle版本:7.2-Android Studio Bumblebee

我读到过这个错误发生在其他库中的一些罕见情况下,这些情况似乎与我的无关,我仍然没有找到解决方案。我知道Buttertools已被弃用,我应该迁移到ViewBind,但这是目前将整个项目转换为的一项艰巨任务。谢谢!


共3个答案

匿名用户

你应该用不同的jdk编译,我用的jdk太高级了。将其恢复为jdk11为我解决了这个问题

匿名用户

虽然我们设置GradleJDK为jdk11或correto 11,Android Studio不承认这一点。

解决方案:

>

  • 在终端中输入java--version以查看是否显示为JDK11

    如果版本不是JDK11,那么设置JAVA_HOMEenv变量导出JAVA_HOME=/用户/${echo$USER}/文档/Android\Studio.app/Contents/jre/Contents/Home

    在终端中键入java--version以查看是否显示为JDK11。

  • 匿名用户

    使用上面答案中的想法并使用Android Studio:文件|设置|构建、执行、部署|构建工具|Gradle. GradleJDK-

    在Windows上,要从终端构建,还必须添加

    JAVA_HOME=C:\Program Files\Android\Android Studio\jre
    

    到文件|设置|终端|环境变量