未找到插件“kotlin-parcelize”

Posted

技术标签:

【中文标题】未找到插件“kotlin-parcelize”【英文标题】:Plugin 'kotlin-parcelize' not found 【发布时间】:2021-03-06 22:18:09 【问题描述】:

Google 建议用户从 kotlin-android-extensions 迁移到 kotlin-parcelize

但是,Gradle 同步失败并出现以下错误:

Plugin [id: 'kotlin-parcelize'] was not found in any of the following sources:

- Gradle Core Plugins (not a core plugin, please see https://docs.gradle.org/6.1.1/userguide/standard_plugins.html for available core plugins)
- Plugin Repositories (plugin dependency must include a version number for this source)

插件在哪里?

【问题讨论】:

【参考方案1】:

kotlin-parcelize 附带 Kotlin 插件 1.4.20 (Release Announcement:弃用 Kotlin Android 扩展)

您需要升级 Kotlin 版本并再次运行 Gradle 同步。

dependencies 
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.20"

【讨论】:

不错!在我的项目的 build.gradle 上更新该类路径为我解决了这个问题。【参考方案2】:

1,更新您的 AndroidStudio kotlin 版本 从菜单中选择 Tools -> Kotlin -> Configure Kotlin Plugin Updates -> 选择一个 kotlin 版本 -> 安装 -> 然后重启 AS

2,使用新的 kotlin 版本更新您的依赖类路径,然后同步项目(如 Brown Smith 回答)

3 build.gradle (:app)

plugins 
    ...
    id 'kotlin-parcelize'

MyObject.kt

import kotlinx.parcelize.Parcelize

@Parcelize
class MyObject(val name: String, val age: Int) : Parcelable 


【讨论】:

知道为什么即使删除扩展插件后以下导入仍然有效?导入 kotlinx.android.parcel.Parcelize 不确定,但您的应用程序正在使用的其他第三方库可能包含它@KaranSharma【参考方案3】:

这是最新的september 2021 实现:

如果您使用'org.jetbrains.kotlin.android' version '1.5.20'或以上,并且找不到parcelize标签,您可以使用settings.gradle中的插件DSL添加它:

plugins   
 id "org.jetbrains.kotlin.plugin.parcelize" version "1.6.0-M1" 

然后在您的应用程序中调用它build.gradle,如下所示:

plugins  
id 'org.jetbrains.kotlin.plugin.parcelize'

【讨论】:

【参考方案4】:

在你的模块级 build.gradle 文件中添加,

plugins 
    ...
    id 'kotlin-parcelize'

在你的项目级 build.gradle 文件中添加,

buildscript 
    ...
    repositories 
        google()
        jcenter()
    
dependencies 
    ...
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32"
    
    

这里的“1.4.32”是 Kotlin 包版本。 您现在将能够找到 Parcelize 包。另外,在导入时请确保导入,

'import kotlinx.parcelize.Parcelize' package.

【讨论】:

如果添加了插件kotlin-android-extensions,也请删除,因为它们不兼容。但如果你使用合成,那就不可能了。【参考方案5】:

试试这个

bulid.gradle (Project:*appname*) 中添加:

buildscript 
    
    dependencies 
        ...
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
    

并在bulid.gradle (Module:*appname*) 中添加:

plugins 
    ...
    id 'org.jetbrains.kotlin.plugin.parcelize'
 

如果它对您不起作用,请查看此链接(如果有新更新):https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.parcelize

【讨论】:

【参考方案6】:

1. Make sure Gradle should be on Online mode

2. apply plugin: 'kotlin-parcelize'

3. need to upgrade your Kotlin versions 1.4.20 or above and run Gradle sync again.

dependencies 
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"

【讨论】:

【参考方案7】:

2021 年 11 月在最新的 android studio 中:

setting.gradle 中添加这一行:

id("org.jetbrains.kotlin.plugin.parcelize") version "1.6.0-M1"

build.gradle 的模块中:

 id("org.jetbrains.kotlin.plugin.parcelize")

【讨论】:

以上是关于未找到插件“kotlin-parcelize”的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 快速实现序列化(Parcelable)

错误:未找到插件 '',或者不是 CDVP 插件。检查 config.xml 中的插件映射

未找到插件,或者不是 CDVP 插件。检查 config.xml 中的插件映射

Cordova Android 自定义插件/应用程序 - 自定义插件上未找到类异常

Spring Security 插件,未找到属性

eslint 为啥我的插件显示未找到规则定义?