Nieobsługiwana metoda: AndroidProject.getPluginGeneration () podczas działania projektu


105

Próbuję uruchomić projekt w Android Studio 2.2, ale pojawia się ten błąd

Unsupported method: AndroidProject.getPluginGeneration().
The version of Gradle you connect to does not support that method.

Używam ButterKnife 8.4.0

Moja aplikacja gradle.file:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

Mój plik oceny modułu:

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

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "xxx.xx"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
}

dependencies {
    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

Dlaczego to nie działa i jak to rozwiązać?


@Tim Castelijns, co się stanie, jeśli zastosujesz rozwiązania z aktualnych odpowiedzi?
azizbekian

@azizbekian, jakie to ma znaczenie
Tim

Odpowiedzi:


281

Problem ogólny: -

Może się tak zdarzyć, ponieważ AS sprawdzał dostępność funkcji Instant Run. Naprawiono wyłączenie funkcji Instant Run:

Windows i Linux:

File -> Settings -> Build, Execution, Deployment -> Instant Run.

Prochowiec:

Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run.

wprowadź opis obrazu tutaj

Dzięki @pophus za wspomnienie o tym.

Wykonaj te czynności, jeśli używasz noża do masła: -

Jeśli używasz nowego kompilatora Jacka z wersją 2.2.0 lub nowszą, nie potrzebujesz wtyczki „android-apt” i możesz zamiast tego zastąpić apt atrybutem annotationProcessor podczas deklarowania zależności kompilatora.

To znaczy usuń

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

z głównego pliku gradle

I usuń

apply plugin: 'android-apt'

z głównego pliku modułu

i wymień

apt 'com.jakewharton:butterknife-compiler:8.4.0'

z

annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

Chcę pokochać natychmiastowy bieg, ale psuje rzeczy w tak dziwny sposób, że nie można go regularnie używać bez poświęcenia czasu
Sirens

24

Napotkałem ten błąd w Android Studio 2.2, w moim przypadku był on spowodowany przez AS sprawdzającego dostępność funkcji Instant Run. Naprawiłem to, wyłączając Instant Run:

Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run


Pracował dla mojego kolegi. Był na gradle 1.2.3
gitter

1
Uratowałeś mi życie. Pracuję nad projektem, który ma zostać wydany i nie chcę aktualizować do niego Gradle. Ta poprawka / obejście zdecydowanie pomogła.
Better Shao,

@pophus może się to zdarzyć z innego powodu, być może natychmiastowe uruchomienie jest jednym, napotkałem ten problem z Butterknife
ColdFusion

7

Zmień wersję gradle na 2.2

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

przepraszam, że to pomyłka, w rzeczywistości używam wersji 2.2.0
ColdFusion,

następnie spróbuj usunąć swój folder .idea i uruchom ponownie ide. Po aktualizacji projektu do wersji 2.2 napotkałem też różne problemy. Jednym z rozwiązań, które znalazłem, jest usunięcie folderu .idea. Teraz wszystko działa dobrze.
Sayem

6

W systemie Windows to jest

File / Settings/ Build, Execution, Deployment / Instant Run.

Odznacz Enable Instant Run to hot swap code...


1
Twoja odpowiedź nie dodaje niczego nowego, zostało to już określone w innych odpowiedziach, czy możesz wyjaśnić?
ColdFusion

1
Trochę czasu zajęło mi znalezienie tej opcji w systemie Windows, więc tym razem chciałem zaoszczędzić dla innych. To takie proste
Flot2011

2

po prostu zamknij natychmiastowy bieg

Plik systemu Windows - ustawienia - kompilacja, wykonanie, wdrożenie - natychmiastowe uruchomienie.

MAC Android Studio -> Preferencje -> Kompilacja, wykonanie, wdrożenie -> Natychmiastowe uruchamianie.


3
Twoja odpowiedź nie dodaje niczego nowego, zostało to już określone w innych odpowiedziach, czy możesz wyjaśnić?
ColdFusion,

2

Wystąpiłem z tym samym błędem w bardzo starym projekcie. Ponieważ Android Studio 3.5 nie ma już opcji Instant Run, potrzebowałem innego rozwiązania.

Okazało się, że musiałem ręcznie zmienić wersję gradle w ustawieniach projektu. Użyłem wersji, której nowy projekt używałby automatycznie, ponieważ listy rozwijane były puste.

W moim przypadku była to wersja wtyczki 3.5.1 i Gradle wersja 5.4.1.

Potem zacząłem Build - Clean Project i wszystko potoczyło się dobrze.


1

Po prostu zaktualizuj wersję wtyczki Gradle do najnowszej wersji:

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

i upewnij się, że Twój Gradle jest również ostatnim v:

#Sun Nov 03 16:47:32 IRST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

UWAGA: użyj również googlew repozytorium

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.