任务执行失败':app:compileDebugKotlin'

时间:2015-10-26 23:42:34

标签: android

我最近更新了我的kotlin和kotlin扩展插件,并在构建时遇到以下错误。我尝试使用gradle清理构建或同步项目,但没有任何工作

e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
Error:Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details

build.gradle如下

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

buildscript {
    ext.kotlin_version = '1.0.0-beta-1038'
    ext.anko_version = '0.7.2'
    ext.android_support_version = '23.0.1'
    ext.android_extensions_version = '1.0.0-beta-1038'

    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
    }
}


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.xxxxxxxxxx.app"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
        debug.java.srcDirs += 'build/generated/src/main/debug'
        release.java.srcDirs += 'build/generated/src/main/release'
    }
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
}

repositories {
    jcenter()
    mavenCentral()
    jcenter { url "https://jitpack.io" }
}

dependencies {
    provided fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'io.realm:realm-android:0.83.0'
    compile 'com.github.PhilJay:MPAndroidChart:v2.1.3'
    compile 'com.braintreepayments.api:braintree:1.+'
    compile('com.mikepenz:materialdrawer:4.4.1@aar') {
        transitive = true
    }
    compile 'com.mikepenz:google-material-typeface:1.2.0.1@aar'
    compile project(':temperature')
    compile project(':heart')
    compile project(':lungs')
    compile "com.android.support:cardview-v7:$android_support_version"
    compile 'com.github.wendykierp:JTransforms:3.1'
    compile 'fuel:fuel:0.57'
    compile "org.jetbrains.anko:anko-sdk15:$anko_version"
    compile "org.jetbrains.anko:anko-support-v4:$anko_version"
    compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile "com.android.support:recyclerview-v7:$android_support_version"
    compile "com.android.support:appcompat-v7:$android_support_version"
    compile "com.android.support:support-v4:$android_support_version"
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

有人可以指出这有什么问题吗?

由于

3 个答案:

答案 0 :(得分:10)

我通过在终端中构建项目然后在intellij(或android studio)中运行app来解决了这个问题。

gradle clean build - >在ide中运行app

答案 1 :(得分:4)

对我来说,解决方案是在Android Studio中打开Gradle Console窗口并使用StackTrace运行构建。

然后,通过阅读,我意识到在Kotlin做一些事情的新事物需要我的代码改变,但正常的Gradle构建并没有抓住这些问题。

将视图投射到TextView或其他任何情况下,这些都不再相关,并且必须更改为findVieById格式。 e.g:

val textView = snackbarView.findViewById(R.id.snackbar_text) as TextView

必须改为

val textView = snackbarView.findViewById<TextView>(R.id.snackbar_text) 

答案 2 :(得分:0)

对于我最近正在从事的项目,我遇到的是相同类型的错误,该错误是由于调用不再存在的静态方法引起的。

MessageService.java

public class MessageService extends FirebaseMessagingService {

    /*
    This method was commented out

    private static String GetReviewTopic(String userId) 
    {
        return "/topics/"+userId+"/review";
    }
    */
}

AppActivity.java

@Override
public void onCreate() {

    ...

    /* 
    No complication error was caused despite the
    method not being defined. 
    */                        
    MessageService.GetReviewTopic(currentUser);

    ...
}

不幸的是,Android Studio并未针对丢失的静态方法报告“语法错误”,也没有任何有意义的复杂错误可以帮助我追踪问题。

希望这个答案能够节省一些人的故障排除时间!