java - 将 Kotlin 添加到现有 Java 项目会破坏 Android Studio gradle 消息错误

标签 java android android-studio gradle kotlin

我是 Gradle 和 Android 的新手,但由于我在任何时候将 Kotlin 添加到我的项目中,我在 Android Studio 中遇到错误,我需要通过 Gradle 控制台,它不会给我任何好的堆栈跟踪或路径默认。在出现错误的 Gradle 消息 View 中,我现在只得到

Error:Execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details

这是预期的功能吗,因为它在 jetbrains 示例项目中似乎工作正常。

我的项目 Gradle 文件

buildscript {

    ext.kotlin_version = '1.1.4-2'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
     }
    }

    allprojects {
    repositories {
        jcenter()
     }
    }

     task clean(type: Delete) {
        delete rootProject.buildDir
     }

我的应用级 Gradle 文件

buildscript {

ext.kotlin_version = '1.1.4-2'
repositories {
    jcenter()
}
dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}

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

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.test.andrew.ccombo_breaker"
    minSdkVersion 19
    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/java'
    main.java.srcDirs += 'src/main/kotlin'
}
}

dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
  compile 'com.android.support:appcompat-v7:25.3.1'
  compile 'com.android.support.constraint:constraint-layout:1.0.2'

  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  compile 'com.google.dagger:dagger:2.9'
  kapt 'com.google.dagger:dagger-compiler:2.9'

  testCompile 'junit:junit:4.12'
}

最佳答案

我没有看到任何问题,也许你可以在这里看到 [Gradle Console],它打印所有构建日志。你可以看到错误详细信息,并发布错误消息。

这是旧的配置,也许你可以像这样配置新的:

1.删除所有关于 Kotlin 的配置。

2.使用菜单->工具-->Kotlin-->在项目中配置Kotlin-->Android with Gradle

3.将版本更改为1.1.2-2,gradle:2.3.3的版本1.1.4-2有一些bug

4.同步gradle

其他。新版本使用扩展只配置这个:

apply plugin: 'kotlin-android-extensions'

不要使用这个:

dependencies {
            classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }

最终,这样配置

项目 Gradle 文件

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

应用级 Gradle 文件

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

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.test.andrew.ccombo_breaker"
        minSdkVersion 19
        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'
        }
    }

}
kapt {
    generateStubs = true
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'

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

    compile 'com.google.dagger:dagger:2.9'
    kapt 'com.google.dagger:dagger-compiler:2.9'

    testCompile 'junit:junit:4.12'
}

Kotlin official doc

关于java - 将 Kotlin 添加到现有 Java 项目会破坏 Android Studio gradle 消息错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067092/

相关文章:

android - 错误 : Your cpu does not support required features(vt-x or svm) on AMD CPU under Windows

Android Studio 3.1 gradle 构建抛出 java.util.zip.ZipException

java - 测试两个 Maven 工件的向后兼容性

java - Spring PropertyPlaceholderConfigurer 不注入(inject)值

java - 当我尝试运行此应用程序时出现 setOnClickListener 错误

java - Android Studio 使用 , 而不是 .格式化字符串后

android - SQLite 和填充 ListView ,android

Android应用程序可以在模拟器上运行,但不能在真机上运行

java - 尝试从文件中读取。抛出异常

java - 获取桌面站点而非移动站点的页面源