java - AppBarMainBinding.java / ContentMainBindind.java 构建错误
问题描述
我尝试构建我的应用程序,但出现堆栈错误。
示例AppBarMainBinding.java
错误:
C:\My_App\app\build\generated\data_binding_base_class_source_out\debug\out\com\example\My_App\databinding\AppBarMainBinding.java:4:
错误:包 android.support.design.widget 不存在
import android.support.design.widget.^CoordinatorLayout;
(^显示错误项)
AppBarMainBinding.java
'build' 文件夹下的文件已生成,不应编辑
// Generated by view binder compiler. Do not edit!
package com.example.gym_app.databinding;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import androidx.viewbinding.ViewBindings;
import com.example.gym_app.R;
import java.lang.NullPointerException;
import java.lang.Override;
import java.lang.String;
public final class AppBarMainBinding implements ViewBinding {
@NonNull
private final CoordinatorLayout rootView;
@NonNull
public final FloatingActionButton fab;
@NonNull
public final Toolbar toolbar;
private AppBarMainBinding(@NonNull CoordinatorLayout rootView, @NonNull FloatingActionButton fab,
@NonNull Toolbar toolbar) {
this.rootView = rootView;
this.fab = fab;
this.toolbar = toolbar;
}
@Override
@NonNull
public CoordinatorLayout getRoot() {
return rootView;
}
@NonNull
public static AppBarMainBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static AppBarMainBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.app_bar_main, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static AppBarMainBinding bind(@NonNull View rootView) {
// The body of this method is generated in a way you would not otherwise write.
// This is done to optimize the compiled bytecode for size and performance.
int id;
missingId: {
id = R.id.fab;
FloatingActionButton fab = ViewBindings.findChildViewById(rootView, id);
if (fab == null) {
break missingId;
}
id = R.id.toolbar;
Toolbar toolbar = ViewBindings.findChildViewById(rootView, id);
if (toolbar == null) {
break missingId;
}
return new AppBarMainBinding((CoordinatorLayout) rootView, fab, toolbar);
}
String missingId = rootView.getResources().getResourceName(id);
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
}
}
示例ContentMainBindind.java
错误:
(相同的 C:) 错误:包 android.support.constraint 不存在
private final ^ConstraintLayout rootView;
(^显示错误项)
符号:类 ConstraintLayout
位置:类 ContentMainBinding
ContentMainBinging.java
“'build'文件夹下的文件已生成,不应编辑”
// Generated by view binder compiler. Do not edit!
package com.example.gym_app.databinding;
import android.support.constraint.ConstraintLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewbinding.ViewBinding;
import com.example.gym_app.R;
import java.lang.NullPointerException;
import java.lang.Override;
public final class ContentMainBinding implements ViewBinding {
@NonNull
private final ConstraintLayout rootView;
private ContentMainBinding(@NonNull ConstraintLayout rootView) {
this.rootView = rootView;
}
@Override
@NonNull
public ConstraintLayout getRoot() {
return rootView;
}
@NonNull
public static ContentMainBinding inflate(@NonNull LayoutInflater inflater) {
return inflate(inflater, null, false);
}
@NonNull
public static ContentMainBinding inflate(@NonNull LayoutInflater inflater,
@Nullable ViewGroup parent, boolean attachToParent) {
View root = inflater.inflate(R.layout.content_main, parent, false);
if (attachToParent) {
parent.addView(root);
}
return bind(root);
}
@NonNull
public static ContentMainBinding bind(@NonNull View rootView) {
if (rootView == null) {
throw new NullPointerException("rootView");
}
return new ContentMainBinding((ConstraintLayout) rootView);
}
}
build.grandle (:app)
plugins {
id 'com.android.application'
}
android {
compileSdk 31
defaultConfig {
applicationId "com.example.gym_app"
minSdk 31
targetSdk 31
versionCode 1
versionName "1.0"
compileSdkVersion 31
buildToolsVersion "30.0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'android.arch.navigation:navigation-fragment:1.0.0'
implementation 'android.arch.navigation:navigation-ui:1.0.0'
implementation 'androidx.lifecycle:lifecycle-runtime:2.3.1'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'devs.mulham.horizontalcalendar:horizontalcalendar:1.3.4'
implementation 'org.web3j:compat:4.6.0-android'
implementation 'org.jetbrains:annotations:15.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
}
大属性
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding\=UTF-8
android.useAndroidX=true
android.enableJetifier=true
解决方案
问题是编译器无法从android.support
包中找到某些类。这可能是因为您想使用androidx
但在布局 xml 中引用了错误的包。
确保androidx
在布局 xml 中使用包中的视图和小部件。
还将所有android.arch
依赖项更新为最新的androidx
等效项。
推荐阅读
- ruby-on-rails - 如何修复 jquery 最新版本它总是返回 1.12.4 版本
- c++ - 使用 RPN 计算器实现 cmath 函数
- amcharts4 - Amcharts4 停止响应浏览器调整大小事件
- python - 有什么方法可以重置 Pycharm 上的外部库吗?
- java - 为什么我可以在没有请求的情况下注入请求范围的 bean?
- android - 如何从 Item.java 文件获取方法 CardListAdapter.java 文件?
- javascript - 嵌套的异步 ForEach 循环
- elm - 如何在 Elm 中制作一组独特的记录
- spring - 使用 Git 的 Spring Cloud 配置安全性
- javascript - 自定义动态创建的元素,添加通过弹出窗口选择的选项