![](/img/trans.png)
[英]Kotlin - IllegalArgumentException: Parameter specified as non-null is null
[英]IllegalArgumentException: Parameter specified as non-null is 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>? {
...
}
override fun onPostExecute(oneClickTokens: HashMap<String, String>) {
super.onPostExecute(oneClickTokens)
...
}
}.execute()
}
似乎函數調用似乎無效。 但是,我不知道如何解決這個問題。 有什么我錯過的 Kotlin 特定內容嗎?
異常很明顯:您為參數傳遞了null
。
默認情況下, Kotlin中的所有變量和參數都是非空的。 如果您想將null
參數傳遞給您應該添加的方法?
到它的類型,例如:
fun fetchMerchantHashes(intent: Intent?)
有關更多信息: null-safety 。
在我的情況下,此錯誤警告可能將 null 作為參數傳遞。 三種矯正方式。
@NonNull
注釋。!!
到方法的參數。?
到 Kotlin 類中的參數。 我認為,如果在 Java 類中沒有使用注釋(如@Nullable
、 @NonNull
),Kotlin 轉換工具可能會默認執行此操作。簡單的答案肯定會奏效...當您使用 Rest Client(Web 服務調用)(GET 或 POST)從服務器獲取數據時,如果 json 響應中可能存在空參數值,並且您正在獲取參數並將其附加到 textview 會出現此錯誤..
解決方案:只需附加 ? 標記到變量如下..
例子:
var batchNo: String? = "" (Correct Approach)
var batchNo= "" (Will Get Error)
在這里,我試圖使用服務調用來獲取 batchNo。
使用 Android Studio 轉換工具將 Activity 從 Java 轉換為 Kotlin 后,我遇到了類似的異常。 所以,我得到了override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent)
正確override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
intent: Intent?
不同intent: Intent?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.