在将适配器代码转换为Kotlin后,我遇到了此错误:
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter convertView
at ...MyAdapter.getView(Unknown Source:35)
at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
at android.widget.AbsListView.obtainView(AbsListView.java:2366)
充气行时会触发错误:
class LegalAdapter internal constructor(private val activity: Activity, private val list: ArrayList<Item>) : BaseAdapter() {
override fun getView(position: Int, convertView: View, parent: ViewGroup): View {
val layoutInflater = activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
@SuppressLint("ViewHolder")
val row = layoutInflater.inflate(R.layout.legal_list_item, parent, false) //exception is throw here
显然,一些不应该为null的参数是null,kotlin检查它。问题是我甚至不能调试新的kotlin代码。
在getView中将你的转换视图从非空更改为空
override fun getView(position: Int, convertView: View, parent: ViewGroup): View {
到
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
使convertView
为空:
convertView: View?
我不知道为什么行号是错误的,但是stacktrace告诉您在错误消息中应该查找的位置。
getView()
方法是Adapter
接口的一部分,是用Java定义的。这里有文档。重要的部分是关于convertView
参数的注释:
视图:如果可能,要重用的旧视图。注意:在使用之前,您应该检查此视图是否为非空且具有适当的类型。
这意味着框架将convertView
的null
值传递给此方法是非常有效的(这意味着您需要创建一个新视图并返回该视图,而不是循环使用旧视图)。
反过来,这意味着convertView
的Kotlin定义必须是View
,而不仅仅是查看
。因此,将函数签名更改为:
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View
我得到这个错误 为了那条线 以下是整个代码。这段代码最初是在java中,我使用Android Studio将其转换为静态编程语言,但现在我得到了这个错误。我试图重建和清理这个项目,但没有成功。
不确定是什么原因导致了这种情况,但我正在尝试从api请求数据,该api包含一个对象数组。如果我将结果打印到控制台,则数据是正确的,除了之外,我希望是一个对象数组。我不明白我错过了什么? 我得到了这个错误: 谁能给我指一下正确的方向吗?课程代码如下: 示例JSON:
我在行得到异常。怎么会呢?这到底是怎么回事? 这是我的密码。 堆栈跟踪
我有java代码,我改成kotlin了,我的代码是用pdf-viewer库显示pdf的,我不明白为什么我的代码是错误的,下面是错误: 指定为non-null的是null参数:方法kotlin.jvm.internal.intrinsics.CheckParameterIsNotNull,inputStream参数 这是我的密码