Android kotlin:无法读取类文件

时间:2017-10-30 00:31:56

标签: android file class kotlin

编辑:这比我想象的要简单得多,我只需要清理项目!

我试图在包含GridView的片段中定义一个接口,强制任何附加片段的活动来实现该接口和onImageSelected方法。 对于它,一旦我检查活动是否正确实现了接口,我将其转换为回调对象。

class MasterListFragment : Fragment(){

lateinit var mCallBack: OnImageClickListener

interface OnImageClickListener{
    fun onImageSelected(position: Int)
}

override fun onAttach(context: Context?) {
    super.onAttach(context)
    if(context !is OnImageClickListener)
        throw ClassCastException(context.toString() + "must implement OnImageClickListener")
    else
        mCallBack = context
}

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val view = inflater?.inflate(R.layout.fragment_master_list, container, false)
    var adapter = MasterListAdapter(context, AndroidImageAssets.getAll())
    var mGridView = view?.findViewById(R.id.master_grid_view) as GridView
    mGridView.adapter = adapter
    mGridView.setOnItemClickListener { _, _, position, _ -> mCallBack.onImageSelected(position) }
    return view
}

在我的活动中,我只是实现了接口并覆盖onImageSelected函数。

但是我遇到了这个错误:

  

错误:任务':app:compileDebugJavaWithJavac'执行失败。

     
    

无法读取类文件:' *** \ tmp \ kotlin-classes \ debug \ com \ example \ android \ myproject \ MasterListFragment $ mCallBack $ 1.class'

  

我试过没有使用lateinit var和一个简单的var而没有运气 我没有得到的是,即使在更改变量名称之后,它仍然指示MasterListFragment $ mCallBack $ 1.class

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我通过清理项目解决了这个问题,你可以尝试一下