不确定是什么原因导致了这种情况,但我正在尝试从api请求数据,该api包含一个消息
对象数组。如果我将结果打印到控制台,则数据是正确的,除了Messages=null
之外,我希望Message
是一个对象数组。我不明白我错过了什么?
我得到了这个错误:java。lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin。jvm。内部的内在的。检查参数完整,参数消息
谁能给我指一下正确的方向吗?课程代码如下:
const val PROFILE_RESPONSE_ID = 0
@Entity(tableName = "profile")
data class ProfileResponse(
val id: Int,
val name: String,
val code: String,
val title: String,
@SerializedName("profile_image")
val profileImage: String,
@SerializedName("background_image")
val backgroundImage: String,
@Embedded(prefix = "messages_")
val messages: ArrayList<Messages>,
) {
@PrimaryKey(autoGenerate = false)
var responseId: Int = PROFILE_RESPONSE_ID
}
示例JSON:
{
"id": 44,
"name": "Jason",
"code": "jason",
"title": "Jason Scott",
"profile_image": "https://sampleurl.com/sample_profile.jpg",
"background_image": "",
"messages": [
{
"id": 0001,
"message": "Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.",
"timestamp": "Thu, 01 Jan 1970 01:00:00 +0100",
}
{
"id": 0002,
"message": "Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.",
"timestamp": "Thu, 01 Jan 1970 01:00:00 +0100",
}
{
"id": 0003,
"message": "Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.",
"timestamp": "Thu, 01 Jan 1970 01:00:00 +0100",
}
}
通过删除@Embedded
解决了这个问题,因为我不一定需要另一个表中的数据,并添加了一个TypeConverter将列表转换为字符串并返回(这个问题很有帮助)。供其他人参考:
类型转换器类
class Convertors {
@TypeConverter
fun listToJson(value: List<Message>?): String {
return Gson().toJson(value)
}
@TypeConverter
fun jsonToList(value: String): List<Message>? {
val objects = Gson().fromJson(value, Array<Message>::class.java) as Array<Message>
val list = objects.toList()
return list
}
}
然后将@TypeConverters添加到我的数据库类中。
数据库类
@Database(entities = [ProfileResponse::class], version = 1)
@TypeConverters(Convertors::class)
abstract class MainDatabase: RoomDatabase() {
abstract fun profileResponseDao(): ProfileResponseDao
}
我得到这个错误 为了那条线 以下是整个代码。这段代码最初是在java中,我使用Android Studio将其转换为静态编程语言,但现在我得到了这个错误。我试图重建和清理这个项目,但没有成功。
在将适配器代码转换为Kotlin后,我遇到了此错误: 充气行时会触发错误: 显然,一些不应该为null的参数是null,kotlin检查它。问题是我甚至不能调试新的kotlin代码。
我在行得到异常。怎么会呢?这到底是怎么回事? 这是我的密码。 堆栈跟踪
我有java代码,我改成kotlin了,我的代码是用pdf-viewer库显示pdf的,我不明白为什么我的代码是错误的,下面是错误: 指定为non-null的是null参数:方法kotlin.jvm.internal.intrinsics.CheckParameterIsNotNull,inputStream参数 这是我的密码