android - 将 gradle 从 3.4 升级到 3.5 在生成的 DataBindingClasses 中抛出“错误:找不到符号类”和“错误:包 ... 不存在”
问题描述
我们将 gradle 从 3.4.0 升级到 3.5.2 并使用distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
. 不幸的是,Android Studio 多次抛出以下错误:
error: cannot find symbol class UI
error: package MyPackage does not exist
在我的数据绑定类中app/build/generated/data_binding_base_class_source_out/debug/dataBindingGenBaseClassesDebug/out/
缺少的符号和包都与我的有关。所以生成的 DataBindingClass 的导入看起来像这样:
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.VideoView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import com.mypackage.mypackage.R;
import com.mypackage.mypackage.UI;
import java.lang.Deprecated;
import java.lang.Object;
升级后我清理了项目,使缓存失效,删除了生成的构建文件夹并重新启动了 android studio 但没有成功。
3.5 中是否有新的东西遗漏了?我通读了他们的发行说明,找不到任何东西。
解决方案
解决方案:
这个答案在类似的情况下帮助了我: https ://stackoverflow.com/a/52550118/8655667
- 添加行
android.enableExperimentalFeatureDatabinding=true
和android.databinding.enableV2=false
到gradle.properties
- 同步项目
- 构建 -> 清理项目
- 构建 -> 重建项目
重建后它应该给你实际的编译失败原因。
推荐阅读
- asp.net-mvc - 我的用例需要哪些 Google Cloud 产品?
- python-3.x - 在 seaborn 热图中屏蔽注释
- html - 响应式 Bootstrap-4 网格系统未崩溃
- c - TCP:套接字发送/接收顺序
- python - Python 模块在首次导入后是否会更改功能(由于源代码更改)
- c - 在不知道文件系统类型或源设备的情况下使用 mount() 重新挂载文件系统
- python - AWS 翻译 - Excel
- java - 如何刷新 webview 而不是自定义 HTML
- c++ - 对话框窗口重新初始化问题
- docker - 卡夫卡码头工人和 LEADER_NOT_AVAILABLE