遇到一个kotlin的kotlinx找不到资源的问题

具体报错就是kotlinx.android.synthetic.main.xxx引入的资源在程序打包运行的时候报Unresolved reference:xxx的错误,因为我把xml放到其他的module里了,而本模块的Activity和他用到的xml并不是一个module,直接用kotlinx去使用这个控件就报错了,目前我的解决办法就是先用findViewById,以后kotlin应该会解决这个问题
问题补充:这个问题在Fragment中比较常见,例如当您访问时btn_K,它需要getView().findViewById(R.id.btn_K),如果在Fragment的

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        var rootView = inflater?.inflate(R.layout.fragment_card_selector, container, false)
        btn_K.setOnClickListener { Log.d(TAG, "onViewCreated(): hello world"); }

        return rootView
    }

这个方法里调用btn_K资源肯定找不到,因为这个方法还没有返回rootView,解决方法是:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    btn_K.setOnClickListener { Log.d(TAG, "onViewCreated(): hello world"); }
}

问题详情:
https://stackoverflow.com/questions/34541650/nullpointerexception-when-trying-to-access-views-in-a-kotlin-fragment

该问题的重点是kotlin这种方式的实现机制是:
当您访问时btn_K,它需要getView().findViewById(R.id.btn_K)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容