使用 Java11 的 ViewBinding,AndroidStudio 总是显示错误(但运行没有任何问题)

ViewBinding with Java11, AndroidStudio always shows error (but runs without any problem)

我注意到 Java8 AndroidStudio(北极狐)中的 viewBinding 没有问题。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
    viewBinding true
}

然而,一旦我将 compileOptions 设置为 JavaVersion.VERSION_11,AndroidStudio 总是错误地显示 viewBiding(s) 错误,尽管它可以编译并且 运行 没有问题。

我在 AndroidStudio ArcticFox 中用一个全新的项目对此进行了测试。它建议导入 class。导入后提示Package not found:

这是 AndroidStudio 的错误,还是我的 AndroidStudio 中 Java 编译器设置有任何错误配置?

我所做的一切都是特别的 JavaVersion.VERSION_11

从您的项目中删除导入行,然后按 Alt+Enter 再次导入,然后通知我

import com.myapplication.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {   

ActivityMainBinding binding;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        binding = ActivityMainBinding.inflate(getLayoutInflater());
        View view = binding.getRoot();
        setContentView(view);

}

}

我遇到了这个问题,我做了以下操作:

  • 运行 gradle 更新程序

  • 打开终端并 运行 gradlew help --scan,它会生成一份报告,告诉您在迁移到 Gradle 7.0
  • 之前应该编辑什么
  • 打开你的 gradle.propertiesdistributionUrlhttps\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
  • 转到您的 Project build.gradle 并将类路径设置为 com.android.tools.build:gradle:7.0.0
  • 与 Gradle 个文件同步并重建您的项目。

作为 google 支持人员的回答:此问题已在 BB Canary 8 中得到解决。它特定于 Java 11。