我更新了 Android Studio 3.6,然后它显示错误“未解决的参考:ActivityMainBinding”。但我想知道该项目仍然与以前的 android studio 版本相同。只是给了我一个错误“未解决的参考:ActivityMainBinding”。
7 回答
DataBinding 类将根据您的 XML 文件名生成。
如果您的 xml 名称是 activity_main.xml,那么 DataBinding 类名称将是 ActivityMainBinding。
如果您的 xml 名称是 main_activity.xml,则 DataBinding 类名称将为 MainActivityBinding。
不要忘记清理和构建项目一次
~
我也遇到了这个问题,解决方案是从https://stackoverflow.com/a/35883531/7952086分享的
最终对我有用的是:
- 干净的
- 使缓存无效/重新启动
- 重建
我也引起了同样的问题,但通过添加“kapt”插件来解决。尝试应用 kapt 插件。
构建 -> 清理项目
构建 -> 重建项目
希望这会有所帮助。谢谢
自 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)
}
}
..
活动主.xml:
对于简单的视图绑定(与数据绑定相反),您可以将外部标记保留为默认值:<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" ..>
无需<layout>
标签!
注意事项:
- 我的应用程序称为 MyApplication。
com.example.myapplication.databinding.ActivityMainBinding
请注意应用程序名称转换为小写的那一行。 - 输入时也会自动添加上述(1)行
private lateinit var binding: ActivityMainBinding
这解决了我的问题。
您必须确保: 1-您的连接互联网已打开“在清单中”() 2-在 android 中添加构建 gradle
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-
rules.pro'
}
}
dataBinding {
enabled = true
}
}
3-sync 现在然后 ctrl+espace 到 ActivityMainBinding
没什么。您只需要执行一次“使缓存无效并重新启动”。
当我们清理项目时有时会清除绑定文件时会发生这种情况。它将自动创建。
谢谢你。