Android 安卓没有';I don’我不参加集体活动

Android 安卓没有';I don’我不参加集体活动,android,kotlin,retrofit,retrofit2,kotlin-coroutines,Android,Kotlin,Retrofit,Retrofit2,Kotlin Coroutines,下午好,我遇到了以下问题:我正在尝试获取商店列表,但得到的响应为空。 从debag判断,它甚至没有进入DataAccessStrategy中的协同程序。 应用程序中的其他地方也有类似的代码,我不知道问题出在哪里 LoginViewModel class LoginViewModel @ViewModelInject constructor(private val remoteDataSource: OrderRemoteDataSource,

下午好,我遇到了以下问题:我正在尝试获取商店列表,但得到的响应为空。 从debag判断,它甚至没有进入DataAccessStrategy中的协同程序。 应用程序中的其他地方也有类似的代码,我不知道问题出在哪里

LoginViewModel

class LoginViewModel @ViewModelInject constructor(private val remoteDataSource: OrderRemoteDataSource,
                                                  private val ordersRepository: OrdersRepository) :
    ViewModel() {

var shops = ordersRepository.getShops()
    fun showDialog(){
        var shopList: List<Shop>? = shops.value?.data
        var names:List<String?> = shopList!!.map{it.customName}

        MaterialAlertDialogBuilder(LOGIN_ACTIVITY)
                .setTitle("Выбрать магазин")
                .setItems(names.toTypedArray()) { dialog, which ->

                    Log.d("LOGIN VIEW MODEL", "selected")
                }
                .show()
    }
OrderRemoteDataSource

class OrderRemoteDataSource @Inject constructor(
    private val orderService: OrderService
) : BaseDataSource() {
    suspend fun getShops() = getResult { orderService.getAllShops() }
interface OrderService {
    @GET("shops/all")
suspend fun getAllShops(): Response<ResultShops>

    companion object {
        const val MAUMarket_API_URL = "MYURL.com"
    }
}
订单服务

class OrderRemoteDataSource @Inject constructor(
    private val orderService: OrderService
) : BaseDataSource() {
    suspend fun getShops() = getResult { orderService.getAllShops() }
interface OrderService {
    @GET("shops/all")
suspend fun getAllShops(): Response<ResultShops>

    companion object {
        const val MAUMarket_API_URL = "MYURL.com"
    }
}
接口订单服务{
@获取(“商店/全部”)
暂停趣味getAllShops():响应
伴星{
const val MAUMarket_API_URL=“MYURL.com”
}
}
E/AndroidRuntime:致命异常:主 进程:ru.gkomega.navigation,PID:4349 java.lang.NullPointerException 在ru.gkomega.maumarket.ui.login.LoginViewModel.showDialog(LoginViewModel.kt:36) 在ru.gkomega.maumarket.ui.login.LoginFragment$onViewCreated$1.onClick(LoginFragment.kt:50) 在android.view.view.performClick上(view.java:7259) 在com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)上 在android.view.view.performClickInternal(view.java:7236) 在android.view.view.access$3600(view.java:801) 在android.view.view$PerformClick.run(view.java:27892) 位于android.os.Handler.handleCallback(Handler.java:883) 位于android.os.Handler.dispatchMessage(Handler.java:100) 位于android.os.Looper.loop(Looper.java:214) 位于android.app.ActivityThread.main(ActivityThread.java:7356) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

我很高兴能得到任何帮助,谢谢

private fun obser() {
    mViewModel.shopsLiveData.observe(viewLifecycleOwner, Observer {
        when (it.status) {
            Resource.Status.SUCCESS -> {
                //binding.progressBar.visibility = View.GONE

                main.isRefreshing = false
                if (!it.data.isNullOrEmpty()) Log.i("LEL",it.data.toString())
            }
            Resource.Status.ERROR ->
                Toast.makeText(requireContext(), it.message, Toast.LENGTH_SHORT).show()

            Resource.Status.LOADING -> {
                main.isRefreshing = true
                //binding.progressBar.visibility = View.VISIBLE
            }
        }
    })
}

试试它的示例代码。可能不是更好的方式,但它可能正在工作

您希望在“LoginViewModel.showDialog(LoginViewModel.kt:36)第36行”中访问哪些数据