Je suis nouveau à Kotlin. J'ai écrit ce code qui obtiendra l'image du sélecteur d'images.
Mais je reçois une erreur en ligne: et une autre erreur sur J'ai recherché une documentation mais je n'ai pas pu résoudre ces 2 problèmes. P> Val FilePath: URI = ATTR.DATA.GETDATA () CODE>
Erreur: référence non résolue. Existe-t-il une modification de Kotlin parce que ce code fonctionnait correctement en Java (désigne que j'ai migré vers kotlin)
Imagestore (bitmap) code> Erreur: Smart Cast to Bitmap est impossible. p>
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == 1) {
val filePath: Uri = attr.data.getData()
try {
val inputStream: InputStream? = contentResolver.openInputStream(filePath)
bitmap = BitmapFactory.decodeStream(inputStream)
imageStore(bitmap)
} catch (e: FileNotFoundException) {
e.printStackTrace()
}
}
}
3 Réponses :
Mais je reçois une erreur en ligne: Val FilePath: URI = ATTR.DATA.GETDATA () Erreur: Référence non résolue P>
Eh bien, cela signifie que le compilateur ne peut pas comprendre ce que vous parlez de. Est-il correct de dire cela? P>
Eh bien, vous envisagez de ne pas avoir d'objet nommé
attr code> Il semblerait que le compilateur est correct. P>
Ceci signifie que vous devez supprimer la partie
attr code>, quelque chose comme: p>
xxx pré> Le retour ici arrêtera d'exécuter le reste de la méthode si les données de l'intention de l'intention est null p>
pour résoudre votre deuxième problème, vous aurez besoin de quelque chose comme ceci: p>
xxx pré> Qu'est-ce que cela fait? P>
Eh bien, il vous donne un accès sans fil à votre objet bitmap et vous garantit également que l'instance n'est pas nulle. P> blockQquote>
Comme je l'ai mentionné, j'ai codé cela en Java il y a quelques mois et que maintenant, j'utilise simplement «migrer vers Kotlin». Caractéristique du studio Android. Le code (avant la migration) fonctionne correctement sans erreur
Oui, l'outil de migration n'est pas parfait, j'essaie de vous apprendre à aborder ces problèmes à l'avenir en expliquant ce que référence non résolu code> signifie @techfangirl :)
Remplacer cette ligne Val FilePath: URI = ATTR.DATA.GETDATA () CODE> avec
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == 1) {
val filePath: Uri = data!!.getData()!!
try {
val inputStream: InputStream? = contentResolver.openInputStream(filePath)
var bitmap = BitmapFactory.decodeStream(inputStream)
imageStore(bitmap)
} catch (e: FileNotFoundException) {
e.printStackTrace()
}
}
}
Type Mismatch: URI requise
Comme @a_local_nobody a déclaré "l'outil de migration n'est pas parfait", j'ai appris les bases de Kotlin et j'ai constaté que le code suivant fonctionne bien pour moi.
S'il vous plaît poster votre trace logcat où le problème existe
@Quicklearner je n'ai pas exécuté le code. L'erreur arrive à IDE (lignes rouges sous textes et conseil à outils I.e. Suggestions (actions de contexte))
@techfangirl Si ma réponse a résolu toutes vos problèmes, veuillez la marquer comme une réponse