安卓 Kotlin 项目在执行 app:kaptDebugKotlin 任务时出现了卡顿。

6

在项目构建过程中,我遇到了以下问题:构建过程仅停留在app:kaptDebugKotlin任务上无法继续进行。 我的根项目build.gradle文件如下:

apply plugin: "kotlin"
buildscript {
    ext.kotlin_version = '1.1.2-2'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"            
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

ext {
    buildToolsVersion = '25.0.2'
    supportLibVersion = '25.3.1'
    runnerVersion = '0.5'
    rulesVersion = '0.5'
    espressoVersion = '2.2.2'
    archLifecycleVersion = '1.0.0-alpha1'
    archRoomVersion = '1.0.0-alpha1'
}

还有应用程序的 build.gradle 文件本身:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 25
    buildToolsVersion rootProject.ext.buildToolsVersion
    defaultConfig {
        applicationId "com.test.roomtest"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:25.3.1'

    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

    compile 'io.reactivex.rxjava2:rxjava:2.1.0'
    compile "io.reactivex.rxjava2:rxandroid:2.0.1"
    compile "android.arch.persistence.room:runtime:${rootProject.archRoomVersion}"
    compile "android.arch.persistence.room:rxjava2:${rootProject.archRoomVersion}"
    kapt "android.arch.persistence.room:compiler:${rootProject.archRoomVersion}"
}
repositories {
    mavenCentral()
}

我尝试使用不同的插件版本,但没有帮助。至于使用 Room 似乎不是问题,因为这个 示例 可以顺利构建。非常感谢任何帮助。


这似乎是kapt中的一个bug。您能否使用jstack来捕获挂起进程的线程转储,并在http://youtrack.jetbrains.com/issues/KT上提交一个YouTrack问题,包括线程转储? - yole
我有同样的问题。@yole - 有没有地方可以让我了解如何使用jstack?当涉及到任何与java/kotlin相关的日志时,我对此一无所知。 - Parker
1个回答

1

这个问题还存在吗?我遇到的同样问题只需使用最新的 Kotlin - 1.3.60 就解决了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接