【问题标题】:Plugin 'kotlin-parcelize' not found未找到插件“kotlin-parcelize”
【发布时间】: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)

插件在哪里?

【问题讨论】:

    标签: android kotlin gradle


    【解决方案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")
          

          【讨论】:

            猜你喜欢
            • 2022-01-10
            • 1970-01-01
            • 1970-01-01
            • 2021-07-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-26
            相关资源
            最近更新 更多