导入kotlinx.android.synthetic.main.activity_main无法正常工作

Wur*_*erk 6 import android kotlin android-studio

导入kotlinx变灰

在此处输入图片说明

我想我几乎尝试了一切。重新安装Android Studio,Invalide Cache,新项目相同的问题。

我只是找不到解决方案

小智 67

检查“build.gradle(:app)”文件,

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}
Run Code Online (Sandbox Code Playgroud)

如果缺少 kotlin 扩展,请kotlin-android-extensions按如下所示添加并单击“立即同步”

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}
Run Code Online (Sandbox Code Playgroud)

  • 这有效。我认为新的 Android Studio 4.1 版本存在一个错误,该错误在项目创建时排除了扩展。 (3认同)
  • 这个对我有用。谢谢 (2认同)
  • 这就是我的答案。谢谢。 (2认同)

Khe*_*raj 50

你能试一下吗

  • 档案 | 使缓存无效/重新启动
  • 删除 .idea 文件夹
  • 干净的
  • 重新导入项目

或者只是删除apply plugin: 'kotlin-android-extensions',同步 gradle 插件,然后我再次添加它。


小智 16

只需在顶部插件部分内的 build.gradle(Module:YourProjectName.app) 中添加以下行:

plugins{
       id 'com.android.application'
       id 'kotlin-android'
       id 'kotlin-android-extensions'
}
Run Code Online (Sandbox Code Playgroud)

大多数前两行已经存在,只需要添加第三行并同步项目


小智 9

module gradle

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

dependencies {
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

project gradle

buildscript{
ext.kotlin_version = '1.3.11'
}
 dependencies {
  classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
Run Code Online (Sandbox Code Playgroud)


ali*_*zad 7

这是一步一步的答案:

  • 从 Android Studio 的右侧单击 Gradle
  • 右键单击应用程序,然后单击 Open Gradle Config
  • plugins部分打开新源代码,然后添加以下内容:

id 'kotlin-android-extensions'

  • 轻敲 sync

结果:现在您可以导入kotlinx.android.synthetic.main.activity_main.*


F.M*_*sir 5

Google 现已弃用合成材料。尽量避免使用它们,因为它可能会导致您的应用程序出现空指针异常和意外行为。

阅读更多:

从官方开发者站点从 Kotlin 合成迁移到 Jetpack 视图绑定


小智 5

在 中build.gradle (:app),添加:

    buildFeatures {
        viewBinding true
    }
Run Code Online (Sandbox Code Playgroud)

MainActivity

    buildFeatures {
        viewBinding true
    }
Run Code Online (Sandbox Code Playgroud)

调整onCreate

private lateinit var binding: ActivityMainBinding
Run Code Online (Sandbox Code Playgroud)

设置监听器:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
        setListeners()
    }
Run Code Online (Sandbox Code Playgroud)