Comment remplacer Classe d'annotation paille
à partir de package kotlinx.android.parcel
avec parice qui ne provient pas du plugin kotlin-android-extensions?
5 Réponses :
Tout d'abord, vous devrez d'abord ajouter le plugin kotlin-parcelize
dans votre module.
import kotlinx.parcelize.Parcelize
puis modifiez votre ancienne instruction d'importation de
import kotlinx.android.parcel.Parcelize
Merci d'avoir répondu. Où exactement ce bloc de code des plugins {} est-il censé entrer? Dans le fichier Gradle au niveau du projet ou le fichier Gradle au niveau de l'application?
J'ai trouvé la réponse. Ce n'est pas encore disponible dans la version stable Kotlin actuelle - moyen.com/ @ drjacky / where-soulf-we-add-plagins-b85517b8a62f
@ G00fy «kotlin-parcelize» et «org.jetbrains.kotlin.plugin.parcelize» fonctionnent pour moi.
Qu'en est-il de cette ligne: classpath "org.Jetbrains.kotlin: kotlin-android-extensions: $ kotlin_vers ion"
Veuillez ajouter que le plugin kotlin-parcelize
est séparé uniquement après Kotlin version 1.4.20 et ne sera pas trouvé en dessous.
J'ai 2 projets, on fonctionne avec perfact avec ce que j'ai, comme AndroidStudio 3.4, dans Project Build (Gradle Version-3.4.1, ext.kotlin_version = '1.3.61') La version du plugin IDE Kotlin est 1.3.61. L'un des projets consiste à lancer une erreur comme "Kotlin_module: le module a été compilé avec une version incompatible de Kotlin. La version binaire de ses métadonnées est 1.5.1, la version attendue est 1.1.16." Pouvez-vous suggérer n'importe quelle solution. Je suis confronté depuis 2-3 semaines.
Cela devrait être le nouveau plugin: https: //plugins.gradle .org / plugin / org.jetbrains.kotlin.plugin.parcelize
Si vous utilisez les plugins dsl Vous pouvez utiliser l'ID de plugin en sous-modules. Assurez-vous que le dernier plugin Kotlin Android est disponible à partir du ClassPath du projet.
import kotlinx.parcelize.Parcelize
Lorsque vous utilisez KTS, vous pouvez écrire ->
import kotlinx.android.parcel.Parcelize
L'étape 2 manquait dans d'autres descriptions et résolvait mon problème, merci.
Je suis nouveau dans Android Development et je n'ai aucune idée que kotlinx
n'a pas pakilize
sous-module (?).
Quelle est la pièce project build.gradle
pour? Cela ne semble pas être nécessaire
@Florianwalther L'identifiant "Kotlin-Parcelize" fait partie du plugin Android Kotlin. Vous devez donc avoir le plugin Kotlin Android dans votre chemin de classe. Peut-être l'avez-vous ajouté avec l'ancienne syntaxe de ClassPath? Ou vous avez un seul module Android (module APP) et ajoutez tous les plugins uniquement là-bas. Ensuite, vous n'avez pas besoin de le définir dans votre projet Build.gradle Gradle.
@ G00fy Merci pour la clarification. J'ai le plugin kotlin-android
qui est ajouté à un nouveau projet par défaut.
Même après le retrait, appliquez le plugin: «Kotlin-android-extensions» peut toujours voir le package kotlinx.android.parcel.parcelize peut être utilisé. Donc est confondu avec l'importation kotlinx.parcelize.parcelize dois-je également supprimer autre chose?
avec groovy
build.gradle
(niveau de projet)
import android.os.Parcelable import kotlinx.parcelize.Parcelize @Parcelize class User( val firstName: String, val lastName: String, val age: Int ): Parcelable
build.gradle
(niveau de l'application . /plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.parcelize "rel =" nofollow noreferrer "> https://plugins.gradle.org/plugin/org.Jetbrains.kotlin.plugin.parcelize / a >
Mettez simplement à jour votre importation
De: Importer kotlinx.android.parcel.parcelize
à: Importer kotlinx.parcelize.parcelize