Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 添加安全参数依赖项后,DataBindingUtil不工作_Android_Android Databinding_Android Safe Args - Fatal编程技术网

Android 添加安全参数依赖项后,DataBindingUtil不工作

Android 添加安全参数依赖项后,DataBindingUtil不工作,android,android-databinding,android-safe-args,Android,Android Databinding,Android Safe Args,我正在添加安全参数依赖项: 项目级: 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_naviga

我正在添加安全参数依赖项:

项目级:

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课程中的确切步骤,但是添加安全args依赖项似乎与数据绑定库发生了某种冲突。要解决此问题,我可以做些什么?

转到您的gradle.properties文件检查您是否有此文件或将其添加:

android.enableJetifier=true
android.useAndroidX=true
然后转到你的build.gradle(应用程序)并将其添加到android下{

dataBinding {
    enabled = true
}
compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8
}
udacity课程没有更新,这里是我使用的依赖项版本

注意这一部分:

而不是像Udacity建议的那样使用它(在build.gradle应用程序级别) 不要使用android.arch

// Navigation
implementation "android.arch.navigation:navigation-fragment-ktx:$version_navigation"
implementation "android.arch.navigation:navigation-ui-ktx:$version_navigation"
使用

// Navigation

implementation "androidx.navigation:navigation-fragment-ktx:2.3.0-alpha04"
implementation "androidx.navigation:navigation-ui-ktx:2.3.0-alpha04"
和in build.gradle(项目级)

以下是所用版本的依赖项的完整列表(以防万一)


看起来您需要将
类路径设置为-
“androidx.navigation:navigation safe args gradle plugin:$nav_version”
,如图所示()。我还将应用-
应用插件:“androidx.navigation.safeargs.kotlin”
如果你的应用程序是基于Kotlin的。还有一件事你可以简单地调用
FragmentGameOverBinding.inflate(充气机)
。你也可以去掉lambda中的
view
参数(好像你没有使用它)。我完全按照你说的做了,将我的类路径更改为“androidx.navigation:navigation safe args gradle plugin:2.3.0-alpha02”和“androidx.navigation.safeargs.kotlin”的插件仍然无法再使用数据绑定库,因为添加了该插件,请尝试清理和重建项目
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0-alpha04
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'androidx.navigation.safeargs'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21"

    // Support libraries
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"

    // Android KTX
    implementation "androidx.core:core-ktx:"1.2.0"

    // Room and Lifecycle dependencies
    implementation "androidx.room:room-runtime:$version_room"
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    kapt "androidx.room:room-compiler:"2.0.0"
    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"

    // Coroutines
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:"1.1.0"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:"1.1.0"

    // Navigation
    implementation "androidx.navigation:navigation-fragment-ktx:2.3.0-alpha04"
    implementation "androidx.navigation:navigation-ui-ktx:2.3.0-alpha04"

    // Testing
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}