在Fragment中如何访问XML元素?配置kotlin-android-extensions后仍不可用
问题排查与解决方案
- 首先确认插件配置位置:你需要确认上述两个插件是配置在模块级(app目录下)的build.gradle文件中,而非项目根目录的build.gradle,完整配置示例如下:
plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' }
- 检查包导入:在你的Fragment代码顶部需要导入对应布局的合成引用,假设你Fragment对应的布局文件名为
fragment_test.xml,导入语句格式为:
import kotlinx.android.synthetic.main.fragment_test.*
- 确认控件调用时机:Fragment中必须在布局加载完成后才能访问XML元素,建议所有控件访问逻辑都写在
onViewCreated方法中,禁止在onCreate或者onCreateView方法返回布局前调用控件。 - 缓存清理:如果上述配置都正确仍无法访问,可以依次执行顶部菜单栏的
Build -> Clean Project再执行Build -> Rebuild Project,清除构建缓存后重新识别。
额外建议:kotlin-android-extensions 插件已被官方废弃,存在类型不安全、空安全隐患等问题,更推荐使用官方维护的ViewBinding来实现布局控件访问,无需额外插件,只需在模块级build.gradle中开启配置即可:
android { buildFeatures { viewBinding true } }
内容的提问来源于stack exchange,提问作者Benazir Sh
相关产品推荐
相关产品推荐

