我更新了一个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>
标签!
需要注意的事项:
- 我的应用程序名为MyApplication。请注意,
com.example.myapplication.databinding.ActivityMainBinding
行中的应用程序名称已转换为小写 - 当您键入
private lateinit var binding: ActivityMainBinding
时,上述(1(行也将自动添加
这解决了我的问题。
没什么。您只需要执行一次"使缓存无效并重新启动">。
当我们清理项目时,有时会清除绑定文件。它将自动创建。
谢谢。