Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execution failed for task ':app:compileDebugKotlin'

Tags:

android

I recently updated my kotlin and kotlin extensions plugin and while building I am getting the following error. I tried clean build or sync project with gradle but nothing works

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

The build.gradle is as follows

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"
}

can someone point out what is the issue with this?

Thanks

like image 214
User Avatar asked Oct 26 '15 23:10

User


2 Answers

I solved this problem by building the project in terminal then run app in intellij(or android studio).

gradle clean build -> run app in ide

like image 80
Myeonseok Baek Avatar answered Nov 16 '22 16:11

Myeonseok Baek


For me, the solution was to open the Gradle Console window in Android Studio and run the build with a StackTrace.

Then, reading through that, I realised that the new of doing some things in Kotlin required my code to change, but a normal Gradle build didn't catch those problems.

It was things like views being cast to TextView or whatever the case might be, that was not relevant anymore, and had to be changed to the findVieById format. e.g.:

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

had to be changed to

val textView = snackbarView.findViewById<TextView>(R.id.snackbar_text) 
like image 29
marienke Avatar answered Nov 16 '22 14:11

marienke