Я использую Kotlin в своем проекте. Я получаю эту ошибку только в версии выпуска. В отладочной версии все работает отлично. Это происходит в этой строке:
postList.addAll(response.body()!!.data)
Я ранее инициализировал это так:
val postList: MutableList<Post> = mutableListOf()
Есть идеи, почему это происходит?
Вот полный код
private fun initRecyclerView(){
adapter = PostsAdapter(context!!, postList)
val linearLayoutManager = LinearLayoutManager(context)
rvPosts.layoutManager = linearLayoutManager
rvPosts.adapter = adapter
}
private fun getPosts(){
swipToRefresh.isRefreshing = true
disposable.add(
apiService.getPostsFeed(
Config.token)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object: DisposableSingleObserver<Response<PostData>>() {
override fun onSuccess(response: Response<PostData>) {
swipToRefresh.isRefreshing = false
when {
response.isSuccessful -> {
postList.clear()
if(response.body() != null){
postList.addAll(response.body()!!.data)
adapter.notifyDataSetChanged()
noPostsLayout.visibility = View.GONE
}
}
response.code() == 404 -> {
noPostsLayout.visibility = View.VISIBLE
}
else -> {
Toast.makeText(
context,
getString(R.string.error_general_failure),
Toast.LENGTH_LONG
).show()
noPostsLayout.visibility = View.GONE
}
}
}
override fun onError(e: Throwable) {
Timber.d("onError ${e.message}")
swipToRefresh.isRefreshing = false
if(!Config.isNetworkConnected(context!!)){
Toast.makeText(context, getString(R.string.error_internet_connection), Toast.LENGTH_LONG).show()
}else{
Toast.makeText(context, getString(R.string.error_server_connection), Toast.LENGTH_LONG).show()
}
}
})
)
}