使用 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.properties
和 distributionUrl
到 https\://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。
我注意到 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.properties
和distributionUrl
到https\://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。