首页 > 解决方案 > Kotlin 布局 ID 显示两个导入

问题描述

我将一个模块导入到我的项目中。该模块在我的示例中工作,

但是在我的应用程序中,这显示了两个导入,有人可以告诉我,为什么会这样。它的解决方案是什么。因为我从来没有在 kotlin 中导入过 id,所以为什么我现在面临这种行为?

图片

请注意:

这不是关于一个 id drawer_layout,我所有的 id 都显示了两个导入,另外请注意,我从未在我的旧示例项目中导入所有这些 id。但是在我的另一个应用程序中,所有 id 都显示了两个导入。

编辑

我正在添加一些额外的屏幕截图以便更好地理解。

没有重复的ID

没有重复的ID

但显示两个进口

两个进口

所有 id 都在类中显示两个导入(类中几乎 100 个错误)

错误

标签: androidkotlin

解决方案


因此,如果您在 xml 布局中有一个 id =drawer_layout 的视图,则有两个导入:

  1. acr.browser.lightning.R.id.drawer_layout:这是您将在R.java文件中找到的 ID 映射。那里的每个视图都有一个条目。即使您不使用 kotlin,此导入也存在。您将使用它,例如,当您想要比较 View Id 以确定单击了哪个 View 等时...

  2. kotlinx.android.synthetic.main.activity_main.drawer_layoutfindViewById: 现在这是您无需直接使用和引用即可访问 VIEW 的方式。

查看您的代码,我发现第二个导入是您需要选择的。IDE 显示两个导入是正常的,因为两者都是有效的。现在,Android Studio 中存在一个错误(至少在 3.1 版本中),即使您选择第二次导入,有时 Android Studio 也会将所有 ID 显示为错误(因为它无法识别合成导入)。要解决此问题,您需要再次构建应用程序,错误将消失(如果合成导入仍然存在)


推荐阅读