【问题标题】:Unresolved reference : ActivityMainBinding in Android Studio 3.6未解决的参考:Android Studio 3.6 中的 ActivityMainBinding
【发布时间】:2020-06-12 04:34:38
【问题描述】:

我更新了 Android Studio 3.6,然后它显示错误“未解决的引用:ActivityMainBinding”。但我想知道该项目仍然与以前的 android studio 版本相同。只是给了我一个错误“未解决的引用:ActivityMainBinding”。

【问题讨论】:

  • 如果你的项目没有给出任何编译时间错误那么你很好。实际上绑定文件是静态文件,当你更新 AS 然后这些文件被重新创建但在代码中(可能是导入引用旧文件)为什么他们在编辑中如此错误。
  • 找到解决方案了吗?
  • @AminPinjari 如果您遇到同样的问题,那么您需要更新您的 Android Studio 最新版本。
  • @MaulikGajjar Studio 版本仅为最新版本,通过常规技巧解决

标签: android kotlin data-binding android-databinding android-studio-3.6


【解决方案1】:

DataBinding 类将根据您的 XML 文件名生成。

如果您的 xml 名称是 activity_main.xml,那么 DataBinding 类名称将是 ActivityMainBinding。

如果您的 xml 名称是 main_activity.xml,则 DataBinding 类名称将为 MainActivityBinding。

不要忘记清理和构建项目一次

~

我也遇到了这个问题,解决方法分享自https://stackoverflow.com/a/35883531/7952086

【讨论】:

    【解决方案2】:

    什么最终对我有用:

    • 干净
    • 使缓存失效/重启
    • 重建

    【讨论】:

      【解决方案3】:

      构建 -> 清理项目

      构建 -> 重建项目

      希望这会有所帮助。谢谢

      【讨论】:

      • 重建的时候不也清理一下吗?
      【解决方案4】:

      我也引起了同样的问题,但通过添加“kapt”插件来解决。 尝试应用 kapt 插件。

      【讨论】:

      • 或更改 kotlin-stdlib-jdk 的依赖 7 -> 8
      • 在我的项目中,我刚刚将 Android Studio 3.5 升级到了 3.6 及其所有依赖项。我还将依赖项 7 更改为 8,但仍然是同样的问题。但是我仍然想知道,当我编译项目并在设备上运行它时,它不会给我一个错误,并且它工作正常。我已经用一些简单的代码在新项目中创建了相同的 android 代码,这不会给 Android Studio 3.6 中的数据绑定带来任何问题。我已经做了所有的可能,但无法解决问题。
      • 检查issuetracker.google.com/issues/149630915,希望下一个补丁可以解决这个问题。
      • 感谢您在这里帮助我。但是我在添加自定义布局文件时已经完成了研发,如下所示android { defaultConfig { sourceSets { main.res.srcDirs = [ 'src/main/res/splash' ] } } } 然后它根本不会生成绑定类文件。但是当我剪切该文件并粘贴到常规布局文件夹中时,它将自动生成,然后我再次将该文件正常布局文件夹移动到自定义布局文件夹,然后它将正常工作。
      • 为了您的帮助,在android studio版本的新补丁中解决了。
      【解决方案5】:

      您必须确保: 1-您的连接互联网在“清单中”( ) 2-in build gradle add in android{

          buildTypes {
          release {
          minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard- 
          rules.pro'
          }
      }
      
      dataBinding {
          enabled = true
      }     
                                   }
      

      现在 3-同步 然后 ctrl+espace 到 ActivityMainBinding

      【讨论】:

      • 您已经尝试重启 Android Studio 了吗?
      【解决方案6】:

      截至 2021 年 5 月 5 日:

      应用build.gradle

      buildFeatures{
          viewBinding = true
      }
      

      MainActivity.kt

      ..
      import com.example.myapplication.databinding.ActivityMainBinding
      
      class MainActivity : AppCompatActivity() {
          private lateinit var binding: ActivityMainBinding
      
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
      
              val binding = ActivityMainBinding.inflate(layoutInflater)
              setContentView(binding.root)
          }
      }
      ..
      

      activity_main.xml:

      对于简单的视图绑定(相对于数据绑定),您可以将外部标签保留为默认值:<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" ..>

      不需要<layout> 标签!


      注意事项:

      1. 我的应用程序名为 MyApplication。请注意应用程序名称转换为小写的com.example.myapplication.databinding.ActivityMainBinding 行。
      2. 当您输入private lateinit var binding: ActivityMainBinding 时,上面(1)提到的行也将自动添加

      这解决了我的问题。

      【讨论】:

        【解决方案7】:

        没什么。您只需执行一次“使缓存无效并重新启动”

        当我们清理项目时有时会清除绑定文件时会发生这种情况。它将自动创建。

        谢谢。

        【讨论】:

        • 已经这样做了。但还是一样,没有任何变化。
        • 发布截图。
        猜你喜欢
        • 2023-04-06
        • 1970-01-01
        • 2020-06-10
        • 2021-11-05
        • 2020-01-05
        • 1970-01-01
        • 2022-01-14
        • 2021-03-28
        • 2019-12-01
        相关资源
        最近更新 更多