首页 > 解决方案 > 将 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 中是否有新的东西遗漏了?我通读了他们的发行说明,找不到任何东西。

标签: androidgradlebuild.gradle

解决方案


解决方案:

这个答案在类似的情况下帮助了我: https ://stackoverflow.com/a/52550118/8655667

  1. 添加行android.enableExperimentalFeatureDatabinding=trueandroid.databinding.enableV2=falsegradle.properties
  2. 同步项目
  3. 构建 -> 清理项目
  4. 构建 -> 重建项目

重建后它应该给你实际的编译失败原因。


推荐阅读