5

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

4

7 回答 7

2

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

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

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

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

~

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

于 2020-12-12T11:54:10.297 回答
1

最终对我有用的是:

  • 干净的
  • 使缓存无效/重新启动
  • 重建
于 2020-03-10T15:37:48.507 回答
0

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

于 2020-02-29T07:23:16.173 回答
0

构建 -> 清理项目

构建 -> 重建项目

希望这会有所帮助。谢谢

于 2020-02-28T05:58:34.883 回答
0

自 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>标签!


注意事项:

  1. 我的应用程序称为 MyApplication。com.example.myapplication.databinding.ActivityMainBinding请注意应用程序名称转换为小写的那一行。
  2. 输入时也会自动添加上述(1)行private lateinit var binding: ActivityMainBinding

这解决了我的问题。

于 2021-05-05T13:41:42.907 回答
0

您必须确保: 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

于 2021-03-25T21:37:03.727 回答
-1

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

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

谢谢你。

于 2020-02-28T06:19:19.900 回答