未解决的引用:Android Studio 3.6中的ActivityMainBinding



我更新了一个Android Studio 3.6,然后它显示了一个错误"Unsolved reference:ActivityMainBinding"。但我一直想知道,该项目仍然像以前的android工作室版本一样工作。只是给了我一个错误"未解析的引用:ActivityMainBinding"。

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

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

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

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

~

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

最终对我起作用的是:

  • 清洁
  • 使缓存无效/重新启动缓存
  • 重建

Build->Clean Project

构建->重建项目

希望这会有所帮助。感谢

Me也造成了同样的问题,但通过添加"kapt"插件解决了问题。尝试应用kapt插件。

您必须确保:1小时互联网连接开启;在清单中";((二合一构建渐变插件安卓{

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

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

截至2021年5月5日:

应用程序build.gradle

buildFeatures{
viewBinding = true
}

主活动.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(行也将自动添加

这解决了我的问题。

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

当我们清理项目时,有时会清除绑定文件。它将自动创建。

谢谢。

最新更新