kotlin.UninitializedPropertyAccessException: свойство свойства lateinitGST не было инициализировано - PullRequest
0 голосов
/ 09 апреля 2019

Данные Json Server отображаются в Android с использованием retrofit2 и rxjava2, когда передача параметров в inteface приводит к ошибке.

class Sales : AppCompatActivity() {

    internal lateinit var api : APIInterface

    private var compositeDisposable : CompositeDisposable? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sales)


        compositeDisposable = CompositeDisposable()

       fetchYearData()
    }

  private fun fetchYearData(){

        val retrofit = APIClient.apIClient
        if (retrofit != null) {
            api = retrofit.create(APIInterface::class.java)
        }


   compositeDisposable!!.add(api.getSalesGSTData(1,1,"04/01/2018","31/03/2019")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe( { displaySalesGSTData(it.salesGST) },
                {

                    Toast.makeText(this,it.message,Toast.LENGTH_LONG).show()


        }))



    }

Модель класса SalesGSTList JsonObject после его успеха и после JSONArray и JSONObject.

SalesGSTList.kt

class SalesGSTList {

    val success : String = ""

    lateinit var salesGST : ArrayList<SalesGST>
}

SalesGST.kt

class SalesGST {

    var FYearID : Int = 0

    var Cmp_Name : String? = ""

    var GSTIN : String? = ""
}

Интерфейс

@GET("SalesGST.php")
    fun getSalesGSTData(@Query("cid") cid : Int,@Query("fid") fid : Int,@Query("fd") fd : String,@Query("td") td : String) : Observable<SalesGSTList>

1 Ответ

1 голос
/ 09 апреля 2019

Просто удалите lateinit из строки lateinit var salesGST : ArrayList<SalesGST> в SalesGSTList.

class SalesGSTList {

    val success : String = ""

    var salesGST : ArrayList<SalesGST>? = null
    // you can also use
    // var salesGST : ArrayList<SalesGST>  = ArrayList()
}

для получения дополнительной информации посетите kotlin-когда-для-использования-ленивый или латинит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...