2015-10-26 22 views
13

Niedawno zaktualizowałem moją wtyczkę kotlin i kotlin extensions i podczas budowania otrzymuję następujący błąd. Próbowałem czystą kompilację lub synchronizacji z projektu Gradle ale nic nie działaWykonanie nie powiodło się dla zadania ": app: compileDebugKotlin"

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 jest następujący

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:[email protected]') { 
     transitive = true 
    } 
    compile 'com.mikepenz:google-material-typeface:[email protected]' 
    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" 
} 

ktoś może wskazać, jaki jest problem z tym?

Dzięki

+0

Mam ten sam problem podczas dodawania Google Play. –

+2

Rozwiązałem ten problem, aktualizując wszystkie moje pozostałe moduły w projekcie przy użyciu aktualnej wersji kotlin, a także zaktualizowałem wersję zależności do najnowszej dostępnej wersji. – User

Odpowiedz

5

I rozwiązać ten problem budując projekt w terminalu następnie uruchomić aplikację w IntelliJ (lub android studio).

Gradle czysty build -> uruchom aplikację w IDE

+0

Po sprawdzeniu i ponownym sprawdzeniu wszystkiego, co możliwe, zwariowałem i ten komentarz był poprawną odpowiedzią. Nie mam pojęcia dlaczego, ale pracowałem. Dzięki ! – Samuelens

0

Dla mnie rozwiązaniem było otworzyć okno konsoli w Gradle Android Studio i uruchomić kompilację z StackTrace.

Potem, czytając to, zdałem sobie sprawę, że nowy sposób robienia niektórych rzeczy w Kotlinie wymaga mojego kodu do zmiany, ale normalna kompozycja Gradle nie złapała tych problemów.

To było rzeczy takie jak widoki rzutowane na TextView lub jakikolwiek inny przypadek, który nie był już istotny i musiał zostać zmieniony na format findVieById. np .:

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

musiała zostać zmieniona na

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

Myślę, że Twój problem dotyczy wersji buildToolsVersion/appcompat. nie wtyczka kotlin. ponieważ 'findViewById ' jest częścią androida O. – crgarridos

+0

@crgarridos, chociaż to prawdopodobnie prawda, pomogło mi znaleźć prawdziwe rzeczy, które przeszkadzały w budowie Gradle'a. Otrzymywałem dokładnie te same wiadomości co wysłane pytanie. – marienke

Powiązane problemy