Intereting Posts
kotlin 1.1.4 примитивы в родовом классе Обменный код между модульными испытаниями и контрольно-измерительными тестами при использовании котлина Доступ с использованием классов Apollo из подпакета – Kotlin Проблема закрытия PlaceAutoCompleteFragment Производит ли вызов Kotlin метод вызова метода Проблемы с попыткой создания приложения Kotlin с Android Studio Kotlin build не может получить классы, созданные SquidDatabase Объекты Companion – Android хочет зарегистрировать их как действия (?) kotlin, используя тип генериков класса данных Использование Glide для кэширования изображений веб-просмотра Вызовите конструктор по умолчанию из другого в Kotlin Колин Спек Рамки сбой с / Gradle как реализовать ограниченный вызов с клиентом блокировки доработки и сопрограммами Наследование Kotlin: передать это как аргумент конструктора Класс данных Котлина, комната Android и пользовательский сеттер

IllegalArgumentException: параметр, заданный как непустой, равен null

Я получаю следующую ошибку времени выполнения :

checkParameterIsNotNull, parameter oneClickTokens at com.info.app.fragments.Fragment_Payment_Profile$fetchMerchantHashes$1.onPostExecute(Fragment_Payment_Profile.kt:0) at com.info.app.fragments.Fragment_Payment_Profile$fetchMerchantHashes$1.onPostExecute(Fragment_Payment_Profile.kt:1543) 

Вот мой код :

  private fun fetchMerchantHashes(intent: Intent) { // now make the api call. val postParams = "merchant_key=$key&user_credentials=$var1" val baseActivityIntent = intent object : AsyncTask<Void, Void, HashMap<String, String>>() { override fun doInBackground(vararg params: Void): HashMap<String, String>? { val url = URL("https://payu.herokuapp.com/get_merchant_hashes") val postParamsByte = postParams?.toByteArray(charset("UTF-8")) val conn = url?.openConnection() as HttpURLConnection conn.requestMethod = "GET" conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded") conn.setRequestProperty("Content-Length", postParamsByte.size.toString()) conn.doOutput = true conn.outputStream.write(postParamsByte) val responseInputStream = conn.inputStream val responseStringBuffer = StringBuffer() val byteContainer = ByteArray(1024) run { var i: Int while (true) { val i = responseInputStream.read(byteContainer); if (i == -1) break; responseStringBuffer.append(String(byteContainer, 0, i)) } } val response = JSONObject(responseStringBuffer.toString()) val cardTokens = HashMap<String, String>() val oneClickCardsArray = response.getJSONArray("data") val arrayLength: Int = oneClickCardsArray.length() if (arrayLength >= 1) { for (i in 0..arrayLength - 1) { cardTokens.put( oneClickCardsArray.getJSONArray(i).getString(0), oneClickCardsArray.getJSONArray(i).getString(1)) } return cardTokens } return cardTokens } override fun onPostExecute(oneClickTokens: HashMap<String, String>) { super.onPostExecute(oneClickTokens) try { if (activity != null && isAdded) { baseActivityIntent.putExtra(PayuConstants.ONE_CLICK_CARD_TOKENS, oneClickTokens!!) startActivityForResult(baseActivityIntent, PayuConstants.PAYU_REQUEST_CODE) } } catch (e: Exception) { e.printStackTrace() } } }.execute() } 

Исключение довольно ясное: вы передаете значение null для параметра.

По умолчанию все переменные и параметры в Kotlin не равны нулю. Если вы хотите передать null параметр методу, который вы должны добавить ? к его типу, например:

 fun fetchMerchantHashes(intent: Intent?) 

Для получения дополнительной информации: null-safety .