【发布时间】:2020-02-25 01:27:27
【问题描述】:
我正在添加安全参数依赖项:
项目级别:
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$version_kotlin"
classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:$version_navigation"
应用级别:
apply plugin: 'androidx.navigation.safeargs'
当我同步项目时,我的数据绑定停止工作,例如:
val binding: FragmentGameOverBinding = DataBindingUtil.inflate(
inflater, R.layout.fragment_game_over, container, false)
binding.tryAgainButton.setOnClickListener {view: View ->
view.findNavController().navigate(R.id.action_gameOverFragment2_to_gameFragment2)
}
return binding.root
binding.root 显示一个未解析的引用,当我转到 DataBindingUtil.java 时,我得到了错误:
Library source does not match the bytecode for class DataBindingUtil
我正在遵循 Google udacity 课程中的确切步骤,但添加安全参数依赖项似乎与数据绑定库发生了某种冲突。我能做些什么来解决这个问题?
【问题讨论】:
-
看起来您需要将
classpath设置为 -"androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version",如下所示(developer.android.com/guide/navigation/…)。如果您的应用基于 Kotlin,我也会申请 -apply plugin: "androidx.navigation.safeargs.kotlin"。还有一件事你可以简单地打电话给FragmentGameOverBinding.inflate(inflater)。您还可以摆脱 lambda 中的view参数(因为您似乎没有使用它)。 -
我完全按照你说的做了,将我的类路径更改为“androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0-alpha02”并将插件更改为“androidx.navigation.safeargs .kotlin" 由于那个添加,数据绑定库仍然无法工作
-
尝试清理并重建您的项目
标签: android android-databinding android-safe-args