Je reçois ce qui suit erreur d'exécution:
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)
Voici mon code:
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()
}
Il semble que l'appel de fonction semble être invalide. Cependant, je ne sais pas comment résoudre ce problème. Y a-t-il quelque chose de spécifique à Kotlin que j'ai manqué?
L'exception est assez claire: vous passez null
pour le paramètre.
Par défaut, toutes les variables et tous les paramètres de Kotlin ne sont pas nuls. Si vous voulez passer le paramètre null
à la méthode, vous devez ajouter ?
à son type, par exemple:
fun fetchMerchantHashes(intent: Intent?)
Pour plus d'informations: null-safety .
Dans mon cas, cette erreur a mis en garde sur probable en passant un null en tant que paramètre. Trois façons de corriger.
@NonNull
à une définition de variable.!!
à un argument de la méthode.?
au paramètre de la classe Kotlin. Je pense que l'outil de conversion Kotlin pourrait le faire par défaut si, dans la classe Java, aucune annotation n'était utilisée (comme @Nullable
, @NonNull
).J'ai attrapé une exception similaire après la conversion d'une activité de Java à Kotlin à l'aide de Android Studio outil de conversion. Donc, c'est que j'ai override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent)
C'est vrai override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
Différence dans intent: Intent?
La réponse simple fonctionnera sûrement ... Lorsque vous extrayez les données du serveur à l'aide de Rest Client (appels de services Web) (GET or POST) et s'il peut y avoir une valeur de paramètre nulle dans la réponse json et que vous extrayez le paramètre et en l'ajoutant à textview vous obtenez cette erreur ..
Solution: suffit d'ajouter? marquer à la variable comme ci-dessous ..
Exemple:
var batchNo: String? = "" (Correct Approach)
var batchNo= "" (Will Get Error)
Ici, j'essaie de récupérer batchNo en utilisant un appel de service.