2017-06-26 10 views
14

Mam Android projekt, który ja niedawno zaktualizowany z 1.1.3 i za każdym razem budować pojawia się następujący błąd:Projekt nie zbuduje z Kotlin 1.1.3

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. 
> kotlin.jvm.internal.FunctionReference.<init>(ILjava/lang/Object;)V 

inne pytania typowo powiedzieć, że oznacza to, że stdlib nie jest dołączony, ale zdecydowanie go dodałem. Jednakże działa 1.1.2-5, a 1.1.3 działa w innych projektach.

Rozwiązanie

The issue was with me mixing the annotation processor with kapt. For projects like DbFlow and Glide, the annotationProcessor dependency can be directly used with kapt.

Powrót do pierwotnego pytania:

Here Is My Travis zalogować i poniżej są moje zależności:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.3-alpha', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    testCompile 'junit:junit:4.12' 

    compile("ca.allanwang:kau:${KAU}") 

    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:${KOTLIN}" 
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:${KOTLIN}" 

    debugCompile "com.squareup.leakcanary:leakcanary-android:${LEAK_CANARY}" 
    releaseTestCompile "com.squareup.leakcanary:leakcanary-android-no-op:${LEAK_CANARY}" 
    releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:${LEAK_CANARY}" 
    testCompile "com.squareup.leakcanary:leakcanary-android-no-op:${LEAK_CANARY}" 

    compile "com.github.Raizlabs.DBFlow:dbflow:${DBFLOW}" 
    compile "com.github.Raizlabs.DBFlow:dbflow-core:${DBFLOW}" 
    annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${DBFLOW}" 
    kapt "com.github.Raizlabs.DBFlow:dbflow-processor:${DBFLOW}" 
    compile "com.github.Raizlabs.DBFlow:dbflow-kotlinextensions:${DBFLOW}" 

    //Icons 
    compile "com.mikepenz:material-design-iconic-typeface:${IICON_MATERIAL}@aar" 
    compile "com.mikepenz:community-material-typeface:${IICON_COMMUNITY}@aar" 

    compile "org.jsoup:jsoup:${JSOUP}" 

    compile "com.github.bumptech.glide:glide:${GLIDE}" 
    annotationProcessor "com.github.bumptech.glide:compiler:${GLIDE}" 

    compile("com.mikepenz:materialdrawer:${MATERIAL_DRAWER}@aar") { 
     transitive = true 
    } 
    compile "co.zsmb:materialdrawer-kt:${MATERIAL_DRAWER_KT}" 

    compile "nz.bradcampbell:paperparcel:${PAPER_PARCEL}" 
    compile "nz.bradcampbell:paperparcel-kotlin:${PAPER_PARCEL}" 
    kapt "nz.bradcampbell:paperparcel-compiler:${PAPER_PARCEL}" 

    compile "com.jude:swipebackhelper:${SWIPE_BACK}" 

    compile("com.crashlytics.sdk.android:crashlytics:${CRASHLYTICS}@aar") { 
     transitive = true; 
    } 
} 

Oto wynik błędu przy próbie budynek z pełnym wskaźnikiem stosu: [usunięto, ponieważ ten wpis był zbyt długi] Nie jestem pewien, czy to pomaga, ale dbflow zazwyczaj ma ostrzeżenie dla każdej kompilacji, ponieważ nie musi generować klas za każdym razem. Wysłałem pytanie do repo, ale nie sądzę, że to jest problem, ponieważ działa poprawnie z 1.1.2-5

Edycja 2: Zerknąłem na ./gradlew dependencies i wszystkie z nich pokazały kotlin 1.1. 3 (zbyt długo, aby opublikować tutaj). Były pewne, które zależały od wersji 1.1.0 od ich źródeł Github, ale nie powinno to wpłynąć na działanie i wyłączenie tych std-libs nie rozwiąże błędu.

Edit 3: Na próbuje .gradlew app:dependencies | grep org.jetbrains.kotlin otrzymuję następujący:

$ ./gradlew app:dependencies | grep org.jetbrains.kotlin 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.0.4 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| +--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 -> 1.1.3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+--- org.jetbrains.kotlin:kotlin-annotation-processing:1.1.3 
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.1 -> 1.1.2-3 
| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-3 
| | |   \--- org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3 -> 1.1.3 (*) 
| \--- org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.2-3 (*) 
+0

Spróbuj zdobądź stacktrace z --stacktrace, jak sugeruje twój log Travisa. – Januson

+0

Jaką wersję stopni używasz? Po uaktualnieniu gradle do najnowszego pomógł mi –

+0

@ A.Shevchuk Mam 'com.android.tools.build: gradle: 2.3.3',' gradle-3.3-all' –

Odpowiedz

16

Z mojego doświadczenia, to:

  1. Gdyby nie mieszać kapt i annotationProcessor
  2. użytkowania kapt3, używając apply plugin: 'kotlin-kapt'
  3. Nie używaj kapt { generateStubs true } } (nie wolno z kapt3)

Sprawdź również, czy twoja wtyczka Kotlin i wtyczka Gradle są aktualne.
Dodatkowo zazwyczaj nie używam wersji standardowej biblioteki jre7, ale wątpię, czy to jest problem tutaj.

Oto bardziej wyczerpująca lista "coś z Kotlin nie działa": https://gist.github.com/lmller/3c43eff454f7508474210fb2491b488a

+0

Masz to z problemem kapt. Nie jestem pewien, czy do "kapt3" trzeba dodać coś więcej, ale po prostu używając 'kapt' pracował dla mnie –

+0

@AllanW jeśli używasz' apply plugin: 'kotlin-kapt'' użyje wersji 3 – Lovis

+0

Odtąd zakładam, że nie możesz już używać Kodu2 tak jak w Klininie 1.1.3, tak? Tak to działa teraz dla mnie (i kapt3 nie działa dla mnie z powodu błędu ...) –

2

komunikat o błędzie podano jako:

java.lang.NoSuchMethodError:

kotlin.jvm.internal.FunctionReference.<init>(ILjava/lang/Object;)V is constructor(Int,Object)

konstruktor jest wprowadzony w kotlin 1.1 jak poniżej:

@SinceKotlin(version = "1.1") 
public FunctionReference(int arity, Object receiver) { 
    super(receiver); 
    this.arity = arity; 
} 

możesz uruchomić ./gradlew dependencies i przeszukać zależność y używa kotlin-stdlib wersja < 1.1. i wyklucza go z twojego projektu. coś jak ten poniżej:

dependencies{ 
    compile('which dependency use stdlib < 1.1'){ 
     exclude group:'org.jetbrains.kotlin', module:'kotlin-stdlib' 
    } 
} 
+0

Zaktualizowałem moje pytanie, ale nie udało mi się znaleźć zależności poniżej wersji 1.1.0. Dziennik gradle pokazał wszystkie z nich jako 1.1.3, a z ich źródeł żadna z zależności nie wydaje się używać niczego pod 1.1.0 –

+0

@AllanW hi, spróbuj przeszukać całą zależność 'org.jetbrains.kotlin' zamiast tego. –

+0

@AllanW na przykład: zależności ./gradlew | grep org.jetbrains.kotlin | grep -v 1.1.3' –

1

add:

zastosowanie wtyczki: 'Kotlin-kapt'

enter image description here

Powiązane problemy