标签: kotlin-gradle-plugin

我们建议使用较新的 Android Gradle 插件来使用compileSdk = 33

我怎样才能更新到最新版本?我找不到最新的gradle-plugin

build.gradle(示例应用程序)

buildscript {
    ext {
        kotlin_version = '1.6.10'
        kotlin_serializtion_version = '1.5.21'
        kotlin_coroutines_version = "1.6.0"
        moshiVersion = "1.13.0"
        retrofit2_version = "2.9.0"
        okhttp3_version = "4.9.0"
        mockk_version = "1.12.2"
        picassoVersion = "2.71828"
        lifecycle_version = "2.5.0"
        koin_version = "3.2.0"
        barcode_scanner_version = "16.1.1"
        camerax_version = "1.0.0"
        camera_view_version = "1.0.0-alpha22"
        stripe_version = "19.1.0"
        jacoco_version = "0.8.7"
        room_version = "2.4.1"
        glide_version = "4.12.0"
        json_version = "20180813"
        kotlin_reflect_version = "1.6.10"
        compose_version = '1.2.0-rc03'
        espresso_version = '3.4.0'
        core_testing_version = '2.1.0'
        pdf_view_version = '3.2.0-beta.1'
        appboy_version = '21.0.0' …
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin android-gradle-plugin kotlin-gradle-plugin

36
推荐指数
3
解决办法
12万
查看次数

找不到方法 - 将 kotlin-gradle-plugin 从 1.6.21 升级到 1.7.10 时出错

我收到以下错误,

Unable to find method ''org.gradle.api.tasks.SourceTask org.jetbrains.kotlin.gradle.tasks.KotlinCompile.source(java.lang.Object[])''
'org.gradle.api.tasks.SourceTask org.jetbrains.kotlin.gradle.tasks.KotlinCompile.source(java.lang.Object[])'

Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested …
Run Code Online (Sandbox Code Playgroud)

android kotlin build.gradle android-gradle-plugin kotlin-gradle-plugin

13
推荐指数
2
解决办法
6150
查看次数

为 Gradle 子项目配置 Kotlin 扩展

我正在为 JVM 设置一个基于 Kotlin 的多模块 Gradle 项目。由于根项目不包含任何代码,因此 Kotlin 插件只能应用于子项目。

build.gradle.kts(根项目)

plugins {
    kotlin("jvm") version "1.6.20" apply false
}

subprojects {
    apply(plugin = "kotlin")

    group = "com.example"

    repositories {
        mavenCentral()
    }

    dependencies {}

    kotlin {
        jvmToolchain {
            check(this is JavaToolchainSpec)
            languageVersion.set(JavaLanguageVersion.of(11))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

尝试设置工具链会导致构建在kotlin {...}扩展处失败:

Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
public fun DependencyHandler.kotlin(module: String, version: String? = ...): Any defined in org.gradle.kotlin.dsl
public fun PluginDependenciesSpec.kotlin(module: String): PluginDependencySpec defined …
Run Code Online (Sandbox Code Playgroud)

gradle kotlin gradle-kotlin-dsl gradle-multi-project-build kotlin-gradle-plugin

12
推荐指数
1
解决办法
8446
查看次数

无法访问作为“com.ex.app.MainActivity”超类型的“android.arch.lifecycle.LifecycleOwner”

我在 android studio 中创建了一个新的 flutter 项目,然后“打开项目”它的 android 部分,我在 MainActivity.kt 中遇到了一个错误,但是它构建成功。

在此处输入图片说明

我的课程路径是:

在此处输入图片说明

最后我的依赖项是:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.70"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,我将不胜感激。

kotlin flutter flutter-dependencies kotlin-gradle-plugin

10
推荐指数
1
解决办法
3782
查看次数

使用 java-test-fixtures 模块时,如何从测试中测试声明为“internal”的 kotlin 函数

我试图在我的 kotlin 项目中使用测试装置。不幸的是,我在工具链的一个组件中遇到了一个奇怪的问题,可能是一个错误(不确定是哪个)。

通常,可以从同一包中的单元访问已main声明的 Kotlin 函数。有许多证据支持这一说法,尤其是Kotlin:使单元测试可见的内部函数internaltest

事实上,如果我们有src/main/kotlin/ main.kt

@file:JvmName("Main")
package org.example.broken_test_fixtures

internal fun sayHello(who: String): String = "Hello, $who!"

fun main() {
    println(sayHello("world"))
}
Run Code Online (Sandbox Code Playgroud)

src/test/kotlin/SayHelloTest.kt

package org.example.broken_test_fixtures

import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test

class SayHelloTest {
    @Test
    fun testSayHello() {
        val expected = "Hello, world!"
        val actual = sayHello("world")
        assertEquals(actual, expected)
    }
}
Run Code Online (Sandbox Code Playgroud)

测试通过常规build.gradle.kts成功通过:

plugins {
    kotlin("jvm") version "1.3.61"
}


group = "org.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral() …
Run Code Online (Sandbox Code Playgroud)

unit-testing gradle kotlin java-test-fixtures kotlin-gradle-plugin

6
推荐指数
1
解决办法
519
查看次数

使用 buildSrc 中的 Kotlin 插件

如何从 buildSrc 插件应用 Kotlin 插件?

\n

我有一个 Kotlin 项目,其 build.gradle.kts 文件包含以下内容:

\n
plugins {\n    application\n    kotlin("jvm")\n    kotlin("plugin.serialization")\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我想在 buildSrc 中创建一个自定义插件:

\n
import org.gradle.api.Plugin\nimport org.gradle.api.Project\nimport org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper\n\nclass MyPlugin: Plugin<Project> {\n    override fun apply(project: Project) {\n        project.pluginManager.apply("org.gradle.application") //This works\n        project.pluginManager.apply("\xc2\xbfkotlin(jvm)?") //<-- Here is my doubt\n        project.pluginManager.apply("\xc2\xbfkotlin(plugin.serialization)?") //<-- Here is my doubt\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

并像这样使用它:

\n
plugins {\n    id("com.example.myplugin")\n}\n
Run Code Online (Sandbox Code Playgroud)\n

gradle gradle-plugin gradle-kotlin-dsl kotlin-gradle-plugin buildsrc

6
推荐指数
1
解决办法
2614
查看次数

Kotlin 插件之间的区别

这三个 Kotlin 插件有什么区别,它们的实际用途是什么?

plugins {
    id 'kotlin-android'
    id 'org.jetbrains.kotlin.android'
    id "org.jetbrains.kotlin.jvm" version "1.6.20"
}
Run Code Online (Sandbox Code Playgroud)

第三种似乎是推荐的方式,特别是在使用Kotlin 协程时

kotlin android-gradle-plugin kotlin-gradle-plugin

5
推荐指数
1
解决办法
2291
查看次数

?Kotlin 插件版本有什么区别?和“Kotlin Gradle 插件版本”?

\xe3\x80\x8cKotlin 插件版本\xe3\x80\x8d 和 \xe3\x80\x8cKotlin Gradle 插件版本\xe3\x80\x8d 有什么区别?

\n

\xe3\x83\xbbKotlin 插件版本
\nKotlinPlugin 版本,可在 [文件]->[设置]->[插件] 中找到\n在此输入图像描述

\n
\n

\xe3\x83\xbbKotlin Gradle 插件版本
\n项目的 build.gradle 中描述的 KotlinGradlePlugin 版本\n在此输入图像描述

\n

这两个值应该相同吗?\n如果有人可以告诉我,请告诉我好吗?

\n

android gradle kotlin kotlin-gradle-plugin

5
推荐指数
1
解决办法
1098
查看次数

(未找到名称为“androidMain”的 KotlinSourceSet。)如何将 android 添加为 Kotlin 多平台项目的构建目标

我正在尝试将android()构建目标添加到 Kotlin 多平台库,以便我可以为 android 目标添加特定的库。所有其他目标(jvm、linux、ios)都工作正常,但 android 似乎有问题,因为 KotlinSourceSet 没有像其他目标一样创建。

这就是我收到错误的地方:

未找到名为“androidMain”的 KotlinSourceSet。

我想知道,我必须手动添加 SourceSet 吗?我是否错过了一些关键的构建步骤?

这是我的gradle.build.kts

plugins {
    id("maven-publish")
    kotlin("multiplatform") version "1.8.0"

}

buildscript {
    repositories {
        google()
    }
    dependencies {
        classpath ("com.android.tools.build:gradle:4.2.2")
        classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0")
    }
}

group = "zzz.xxxx"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

kotlin {
    jvm()
    linuxX64("linux")
    ios()
    android()

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("...")
            }
        }
        val commonTest by getting {
            dependencies {
                implementation(kotlin("test")) 
            }
        }
        val jvmMain …
Run Code Online (Sandbox Code Playgroud)

gradle kotlin android-gradle-plugin kotlin-multiplatform kotlin-gradle-plugin

5
推荐指数
1
解决办法
4171
查看次数

我们建议使用较新的 Android Gradle 插件来使用compileSdk = 34?

嘿伙计们,我怎样才能更新到最新版本,因为我找不到最新的gradle-plugin。有人可以指导我吗?

构建.gradle(:应用程序)

plugins {
    id "com.android.application"
    id "org.jetbrains.kotlin.android"
}

android {
    namespace "com.abc.xyz"
    compileSdk 34

    defaultConfig {
        applicationId "com.abc.xyz"
        minSdk 24
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_compiler_version
    }
    packagingOptions {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    } …
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin android-gradle-plugin kotlin-gradle-plugin

5
推荐指数
1
解决办法
1万
查看次数

kotlin-gradle-plugin 如何使用 'kotlin.code.style' 属性?

官员科特林文档状态:

kotlin.code.style=official属性添加到项目根目录的 gradle.properties 文件中。

我试图了解kotlin-gradle-plugin如何处理此属性。

哪个 gradle 任务使用它?
运行时gradle build,我没有看到我的代码被重新格式化,即使我故意格式化我的代码也是如此。

我浏览了插件Github 源代码,但无法正确理解它。

谢谢你的帮助。

gradle kotlin kotlin-gradle-plugin

4
推荐指数
1
解决办法
734
查看次数

无法获取未知属性“destinationDir”

当我在 Android 插件项目中将 kotlin-gradle-plugin 版本从 1.5.0 升级到 1.7.20 时,出现此异常。

\n

\n

我使用这段代码build.gradle

\n
compileGroovy.classpath += files(compileKotlin.destinationDir)\n
Run Code Online (Sandbox Code Playgroud)\n

怎么解决\xef\xbc\x9f

\n

我的 evn 是:

\n
    \n
  • 等级:7.4
  • \n
  • android-gradle: 7.3.0
  • \n
  • kotlin-gradle-插件:1.7.20
  • \n
\n

android android-gradle-plugin gradle-plugin gradle-kotlin-dsl kotlin-gradle-plugin

2
推荐指数
1
解决办法
2024
查看次数

在多平台项目中使用 kotlinx 序列化

我正在按照 github 上的教程在 Kotlin 1.4-M2 的多平台项目中使用 Kotlin seriazliation 进行测试驱动,但我没有得到要编译的序列化位。

这是我的 build.gradle.kts

plugins {
    val kotlinVersion = "1.4-M2"
    kotlin("multiplatform") version kotlinVersion
    kotlin("plugin.serialization") version kotlinVersion
}
Run Code Online (Sandbox Code Playgroud)
repositories {
    mavenCentral()
    maven {
        url = uri("https://dl.bintray.com/kotlin/kotlin-eap")
    }
    maven {
        url = uri("https://kotlin.bintray.com/kotlinx")
    }
    jcenter()
    gradlePluginPortal()
}
Run Code Online (Sandbox Code Playgroud)
kotlin {
    jvm {
        compilations.all {
            kotlinOptions.jvmTarget = "11"
        }
    }
    js(IR) {
        moduleName = "hotel"
        browser {
            dceTask {
                keep(
                   ...
                )
            }
            binaries.executable()
        }
    }

    sourceSets {

        // val serializationVersion = "0.20.0-1.4-M2"
        val serializationVersion = "0.20.0" …
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-multiplatform kotlinx.serialization kotlin-gradle-plugin

1
推荐指数
1
解决办法
2235
查看次数