Reputation: 356
I'm using Kotlin in my project. I'm getting this error only on the release version. In the debug version, everything works perfectly. It happens on this line:
postList.addAll(response.body()!!.data)
I previously initialized it like this:
val postList: MutableList<Post> = mutableListOf()
Any idea why this is happening?
Here is the full code
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()
}
}
})
)
}
Upvotes: 1
Views: 689
Reputation: 3268
Try postList.addAll(response.body()?.data?)
or postList.addAll(response.body()!!.data?)
Upvotes: 1