2017-10-26 78 views
7

build.gradleNie można znaleźć metody 'com.android.build.gradle.api.BaseVariant.getOutputs() Ljava/util/List;'

buildscript { 
    ext.kotlin_version = '1.1.51' 
    repositories { 
     jcenter() 
     mavenCentral() 
     maven { url "https://jitpack.io" } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.0' 
     classpath 'me.tatarka:gradle-retrolambda:3.6.1' 
     classpath 'com.google.gms:google-services:3.1.0' 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
    } 
} 

app/build.gradle

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.jakewharton:butterknife-gradle-plugin:8.7.0' 
    } 
} 


     android{ 
      compileSdkVersion = 26 
      buildToolsVersion = "26.0.2" 
    defaultConfig { 
      minSdkVersion = 16 
      targetSdkVersion = 26 

     } 
    ... 
    applicationVariants.all { variant -> 

     variant.outputs.all { output -> 
      outputFileName = "newApkName.apk" 
     } 
    } 
} 

Jak rozwiązać problem:

Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'. 

Możliwe przyczyny tego nieoczekiwanego błędu obejmują: Gradle w zależności cache może być uszkodzony (zdarza się to czasami po przekroczeniu limitu czasu połączenia sieciowego). Ponownie pobrać de projekt pendencies i synchronizacja (wymaga sieci) Stan procesu budowania programu Gradle (demon) może być uszkodzony. Zatrzymanie wszystkich demonów Gradle może rozwiązać ten problem. Zatrzymaj Gradle buduj procesy (wymaga ponownego uruchomienia) Twój projekt może być za pomocą wtyczki innej firmy, która nie jest kompatybilna z innymi wtyczkami w projekcie lub wersją Gradle żądaną przez projekt. W przypadku uszkodzonych procesów Gradle można również spróbować zamknąć IDE, a następnie zabić wszystkie procesy Java.

+0

Możesz opublikować rozwiązanie jako odpowiedź tak, że pytanie nie wygląda bez odpowiedzi dla osób, które chcą zaoferować pomoc. –

Odpowiedz

6

Miałem ten sam błąd z Gradle synchronizacji, specjalnie przywiązany do butterknife, moje rozwiązanie zostało rozwiązane poprzez

https://github.com/JakeWharton/butterknife/issues/963#issuecomment-339545297

tldr w pliku budowy projektu ...

buildscript{ 
repositories { 
    //other repos will likely exist here like jcenter and mavenCentral 

    //add this closure 
    maven { 
    url "https://oss.sonatype.org/content/repositories/snapshots" 
    } 
    } 
    dependencies { 
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.7.0' 
    classpath 'com.android.tools.build:gradle:3.0.0' 
    //change your version to 9.0.0-SNAPSHOT 
    classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT' 
    //.. other project level dependencies 
    } 
} 
} 

także upewnić się, że allproject obejmuje

allproject{ 
    repositories{ 
    maven { 
     //this 
     url "https://oss.sonatype.org/content/repositories/snapshots" 
    } 
    } 
} 

I wtedy problem związany żaden butterknife był zarozumiały Moje strony buildToolsVersions do "26.0.2" w aplikacji kompilacji

+0

W moim projekcie bibliotecznym (import R2) ten komentarz pomógł mi: https://github.com/JakeWharton/butterknife/issues/963#issuecomment-342547601 – norbDEV

0

Wydaje się, że problem nie jest w app/build.gradle, ale w butterknife-gradle-plugin

rozwiązać poprzez usunięcie butterknife-gradle-plugin

0

podstawie ElliotM za odpowiedź:

  • Kotlin 1.2.10
  • Gradle 3.0.1
  • wersja narzędzia Zbuduj 27.0.3
  • zastosowanie wtyczki: 'com.android.library'
  • zastosowanie wtyczki:
  • zastosowanie wtyczki 'Kotlin-android-Extensions': „Kotlin-android "
  • zastosowanie wtyczki: 'com.jakewharton.butterknife'

W moim projekcie biblioteki ten komentarz pomógł mi (import R2): https://github.com/JakeWharton/butterknife/issues/963#issuecomment-342547601

Budowa projektu.Gradle:

buildscript { 
    repositories { 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots" } 
     google() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT' 
    } 
} 

repositories { 
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" } 
} 

modułu build.gradle:

apply plugin: 'com.jakewharton.butterknife' 

... 

dependencies { 
    compile 'com.jakewharton:butterknife:9.0.0-SNAPSHOT' 
    kapt 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT' 
} 

W ten sposób można korzystać z

apply plugin: 'com.jakewharton.butterknife'