【发布时间】:2020-02-12 09:42:09
【问题描述】:
我的应用程序崩溃了,除了出现此错误之外没有任何堆栈跟踪:
A/libc: Fatal signal 11 (SIGSEGV), code 128, fault addr 0x0 in tid 12680 (dio.downloadapp)
经过一些故障排除后,我将其范围缩小到这一行作为导致此错误的原因:
val details = gson.fromJson(fileReader, VideoDetails::class.java)
它来自视图模型的方法:
private fun onVideoDetailsFetched() {
try {
val file = File(context.filesDir, QUEUE_VIDEO_DETAILS_FILE)
val fileReader = FileReader(file)
val details = gson.fromJson(fileReader, VideoDetails::class.java)
videoDetails.send(details)
} catch (e: Exception) {
e.printStackTrace()
}
}
该文件是在 WorkManager 库中的 Worker 类的方法中创建的:
private fun VideoDetails.saveVideoDetails() {
val json = gson.toJson(this)
File(applicationContext.filesDir, VIDEO_DETAILS_FILE).writeText(json)
}
还有VideoDetails只是一个数据类,有一堆字符串和一个位图:
data class VideoDetails(
val filename: String? = null,
val title: String? = null,
val vcodec: String? = null,
val acodec: String? = null,
val duration: String? = null,
val filesize: String? = null,
val width: String? = null,
val height: String? = null,
val bitrate: String? = null,
val framerate: String? = null,
val encoder: String? = null,
val encodedBy: String? = null,
val date: String? = null,
val creationTime: String? = null,
val artist: String? = null,
val album: String? = null,
val albumArtist: String? = null,
val track: String? = null,
val genre: String? = null,
val composer: String? = null,
val performer: String? = null,
val copyright: String? = null,
val publisher: String? = null,
val language: String? = null,
var thumbnail: Bitmap? = null
)
奇怪的是,只有在第三次调用 Gson.fromJson() 时才会发生崩溃。前两次,它工作正常。
有人知道我为什么会收到这个错误吗?又该如何解决呢?
更新:
当我删除位图时,它似乎可以工作。现在,问题是如何存储位图并使其工作。
【问题讨论】:
标签: android kotlin gson android-bitmap