วิธีที่ไม่รองรับ: AndroidProject.getPluginGeneration () ในขณะที่รันโปรเจ็กต์


105

ฉันพยายามเรียกใช้โครงการด้วย Android Studio 2.2 แต่ได้รับข้อผิดพลาดนี้

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

ฉันใช้ ButterKnife 8.4.0

แอพของฉัน gradle.file:

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

ไฟล์ Gradle โมดูลของฉัน:

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

ทำไมมันไม่ทำงานและฉันจะแก้ปัญหาได้อย่างไร?


@ Tim Castelijns จะเกิดอะไรขึ้นถ้าคุณใช้วิธีแก้ปัญหาจากคำตอบปัจจุบัน?
azizbekian

@azizbekian เกี่ยวข้องอย่างไร
Tim

คำตอบ:


281

ปัญหาทั่วไป: -

อาจเกิดขึ้นได้เนื่องจาก AS กำลังตรวจสอบความพร้อมใช้งานของคุณลักษณะการเรียกใช้ทันที การแก้ไขคือการปิดใช้งาน Instant Run:

Windows และ Linux:

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

Mac:

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

ใส่คำอธิบายภาพที่นี่

ขอบคุณ @pophus ที่กล่าวถึงสิ่งนี้

ใช้ขั้นตอนนี้หากคุณใช้บัตเตอร์มีด: -

หากคุณใช้คอมไพเลอร์ Jack ใหม่เวอร์ชัน 2.2.0 หรือใหม่กว่าคุณไม่จำเป็นต้องใช้ปลั๊กอิน 'android-apt' และสามารถแทนที่ apt ด้วย annotationProcessor เมื่อประกาศการพึ่งพาคอมไพเลอร์

นั่นคือลบ

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

จากไฟล์ gradle หลักของคุณ

และลบ

apply plugin: 'android-apt'

จากไฟล์โมดูลหลักของคุณ

และแทนที่

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

ด้วย

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

ฉันต้องการที่จะรักการวิ่งทันที แต่มันทำลายสิ่งต่าง ๆ ในรูปแบบแปลก ๆ ทำให้ไม่สามารถใช้งานได้อย่างสม่ำเสมอโดยไม่ต้องเสียเวลา
ไซเรน

24

ฉันพบข้อผิดพลาดนี้ใน Android Studio 2.2 ในกรณีของฉันสาเหตุมาจากการตรวจสอบความพร้อมใช้งานของคุณลักษณะ Instant Run ฉันแก้ไขโดยปิดการใช้งาน Instant Run:

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


ทำงานให้เพื่อนร่วมงานของฉัน เขาอยู่ในระดับ 1.2.3
gitter

1
คุณช่วยชีวิตฉัน. ฉันกำลังทำโปรเจ็กต์ที่ใกล้จะวางจำหน่ายและฉันไม่ต้องการอัปเกรดเกรดสำหรับมัน การแก้ไข / วิธีแก้ปัญหานี้ช่วยได้แน่นอน
Better Shao

@pophus อาจเกิดขึ้นได้เนื่องจากสาเหตุที่แตกต่างกันบางทีการรันทันทีเป็นหนึ่งฉันพบปัญหานี้กับ butterknife
ColdFusion

7

เปลี่ยนรุ่น gradle เป็น 2.2

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

ขออภัยที่พิมพ์ผิดฉันใช้ 2.2.0
ColdFusion

จากนั้นลองลบโฟลเดอร์ .idea ของคุณและรีสตาร์ทไอเดียของคุณ หลังจากอัปเดตโปรเจ็กต์เป็น 2.2 ฉันก็ประสบปัญหาต่างๆเช่นกัน ทางออกหนึ่งที่ฉันพบคือการลบโฟลเดอร์. ina ตอนนี้ทุกอย่างทำงานได้ดี
Sayem

6

บน Windows มันคือ

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

ยกเลิกการเลือก Enable Instant Run to hot swap code...


1
คำตอบของคุณไม่ได้เพิ่มอะไรใหม่มันได้ระบุไว้แล้วในคำตอบอื่น ๆ คุณสามารถชี้แจงได้หรือไม่?
ColdFusion

1
ฉันใช้เวลาพอสมควรในการค้นหาตัวเลือกนี้ใน Windows ดังนั้นฉันจึงต้องการบันทึกสำหรับคนอื่นในครั้งนี้ ง่ายๆแค่นั้นเอง
Flot2011

2

เพียงแค่ ปิดการเรียกใช้ทันที

Windows File -Settings- Build, Execution, Deployment - Instant Run

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


3
คำตอบของคุณไม่ได้เพิ่มอะไรใหม่มันได้ระบุไว้แล้วในคำตอบอื่น ๆ คุณสามารถชี้แจงได้หรือไม่?
ColdFusion

2

ฉันพบข้อผิดพลาดเดียวกันในโปรเจ็กต์เก่ามาก เนื่องจาก Android Studio 3.5 ไม่มี Instant Run Option อีกต่อไปฉันจึงต้องใช้โซลูชันอื่น

ปรากฎว่าฉันต้องเปลี่ยนรุ่น gradle ด้วยตนเองในการตั้งค่าโครงการ ฉันใช้เวอร์ชันที่โครงการใหม่จะใช้โดยอัตโนมัติเนื่องจากรายการแบบเลื่อนลงว่างเปล่า

ในกรณีของฉันมันคือ Plugin เวอร์ชัน 3.5.1 และ Gradle เวอร์ชัน 5.4.1

หลังจากนั้นฉันก็เริ่ม Build - Clean Project และทุกอย่างก็เรียบร้อยดี


1

เพียงอัปเกรดเวอร์ชันปลั๊กอิน Gradle เป็นเวอร์ชันล่าสุด:

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
    }

และให้แน่ใจว่า Gradle ของคุณเป็น 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

หมายเหตุ: ใช้googleในที่เก็บด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.