I plug-in Gradle di terze parti potrebbero essere la causa


132

Dopo l'aggiornamento ad Android Studio 3.1 ho ricevuto questo messaggio di errore:

Il progetto funziona bene e questo è principalmente solo un avvertimento, quindi la mia domanda è: qual è il significato dell'avvertimento e come posso liberarmene?

Le parti rilevanti dai file gradle:

Questo è il mio progetto build.gradle

buildscript {
    ext {
        kotlin_version = '1.2.31'
        anko_version = '0.10.4'
        room_version = '1.0.0'
        support_version = '27.1.0'
        firebase_version = '12.0.0'
        gms_version = '12.0.0'
    }

    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
    }
}

E questo è il build.gradlefile della mia app :

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

1
secondo issuetracker.google.com/issues/74537216 questo problema è stato risolto in AS3.2
Angel Koh

Build> Rebuild Projectlavorato da me
Zohab Ali,

Risposte:


143

Per risolvere il problema, rimuovere Instant App Provision da "Esegui configurazioni" e lasciare solo il file Gradle-Aware Make.

Run -> Edit Configurations..

Configurazioni di esecuzione / debug dopo la compilazione corretta

Ho la versione della libreria AndroidStudio 3.1, Gradle Plugin 3.1.0e Kotlin 1.2.30.


5
questo in realtà funziona, ma ho idea del perché stesse accadendo e di come sei arrivato a questa soluzione.
impazzito il

59
e per qualche motivo dopo Instant App Provisionsaverlo eliminato , tornando sempre al suo posto.
impazzito il

3
Questo disabilita la corsa istantanea?
Caleb_Allen,

7
@Caleb_Allen no, ma nessuno usa comunque la corsa istantanea. Questo è per le "app istantanee", non per la corsa istantanea
Tim

4
Per tutti quelli che continuano a tornare (come @humazed), ho trovato una soluzione: prima vai di Run > Edit Configurationsnuovo. Quindi vai Edit Defaultsfacendo clic sul pulsante con l'icona della chiave inglese in alto. Seleziona Android Appe lascia solo Gradle-aware Makecome prima. Hit applica.
b_yng,

17

Ho riavviato Android Studio e il problema è scomparso.

Fare clic su File -> Cache / riavvio non validi

Ogni volta che cambio il file gradle, devo riavviare Android Studio o il problema ritorna.

Puoi anche provare questo:

  1. Riordinati repository per:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
  2. Svuotare questa cartella: ~ / .gradle / cache dell'utente e cancellare manualmente la cartella di creazione app , quindi pulire e ricostruire .


Ma non riesco ancora a eseguire la mia app in quanto costruirà il progetto prima di avviarlo.
Infinite Loops

7

Cosa ha risolto il problema per me:

  • Cambia la versione del plugin gradle in 3.1.0
  • Cambia la versione di Kotlin in 1.2.30
  • Quindi Android Studio ha cambiato il wrapper Gradle in versione 4.4
  • Quindi Android Studio stava dicendo che la versione degli strumenti di build utilizzata era 27.0.3e che avrei dovuto cambiarla in 27.0.3modo da cambiare anche l'SDK di destinazione27
  • Ho aggiunto questo al mio gradle.build:

    kapt {
         generateStubs = true
     }

spero possa essere d'aiuto


5

su android studio v3.1.2, succede Errore:

Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\debug
Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\release
3rd-party Gradle plug-ins may be the cause

perché dataBinding usa apply plugin: 'kotlin-kapt'quindi aggiungi

kapt {
    generateStubs = true
}
  1. Cambia la versione del plugin gradle in 3.1.2
  2. Cambia la versione di Kotlin in 1.2.30
  3. Quindi Android Studio ha modificato Gradle Wrapper con la versione 4.4
  4. Quindi Android Studio stava dicendo che la versione degli strumenti di compilazione utilizzata era la 27.1.1 e che avrei dovuto cambiarla in 27.1.1, quindi ho anche cambiato l'SDK di destinazione in 27

5

Ecco alcuni passaggi che ho seguito. Nel mio caso è stato risolto il problema!

Moduli di piattaforma destinati ad Android L'aggiornamento della funzionalità di progetti multipiattaforma sperimentali introduce il supporto per i moduli di piattaforma Android. Questi moduli dovrebbero applicare il plug-in corrispondente nello script di compilazione Gradle e possono utilizzare il codice condiviso da un modulo comune:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// ...
// ...

Posizioni diagnostiche di Kapt Al momento, kapt, lo strumento di elaborazione delle annotazioni di Kotlin, può offrire collegamenti a posizioni nel codice Kotlin originale anziché generare stub Java in quanto segnala errori riscontrati durante l'elaborazione delle annotazioni. È possibile abilitare questa funzione aggiungendo queste righe allo script di compilazione Gradle (build.gradle):

kapt {
    mapDiagnosticLocations = true
}

Aggiungi questo:

allprojects {
        repositories {
            jcenter()
            google()
        }
    }

Non dimenticare il prossimo:

// Architecture Component - Room

     implementation "android.arch.persistence.room:runtime:1.1.0-beta1"
        kapt "android.arch.persistence.room:compiler:1.1.0-beta1"

      // Lifecyles, LiveData and ViewModel
    kapt 'com.android.databinding:compiler:3.1.0'


 // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:1.1.1"

// alternatively, just ViewModel
    implementation "android.arch.lifecycle:viewmodel:1.1.1"

 // alternatively, just LiveData
     implementation "android.arch.lifecycle:livedata:1.1.1"
       kapt "android.arch.lifecycle:compiler:1.1.1"

 // Room (use 1.1.0-beta1 for latest beta)
    implementation "android.arch.persistence.room:runtime:1.0.0"
      kapt "android.arch.persistence.room:compiler:1.0.0"


// Paging
    implementation "android.arch.paging:runtime:1.0.0-alpha7"

        // Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:1.1.1"

        // Test helpers for Room
 testImplementation "android.arch.persistence.room:testing:1.0.0"
  1. Pulisci il tuo progetto

  2. Costruisci e basta!

Aggiungi tutto questo, pulisci il tuo progetto, costruisci e basta! :) Fammi sapere se funziona! (Se non funziona per te, ti aiuterò con un'altra soluzione)

Ulteriori informazioni: Sito Android :) Fammi sapere se funziona! (Se non funziona, cercherò di aiutarti a trovare un modo migliore)

Se dai un voto, spiega perché


1
L'aggiunta della linea mapDiagnosticLocations = truealla kaptconfigurazione funziona, almeno a volte almeno: /
kuhnroyal

@kuhnroyal Apprezzo il tuo feedback! Buona giornata, continuo a cercare una soluzione migliore
Cristofer,

5

Ciò che effettivamente mi ha aiutato è l'aggiunta di questo

kapt {
     generateStubs = true
}

in build.gradle


3

Nel mio caso nessuna delle soluzioni di cui sopra ha risolto il mio problema, stavo usando la versione 1.2.50 di Kotlin senza alcuna menzione a Instant Run e la build non stava generando le classi Dagger, quindi ho scoperto questa domanda che risolveva il mio problema, apparentemente , nella mia situazione è un problema relativo alla nuova versione di Kotlin, quindi ho eseguito il downgrade alla versione 1.2.41 e ho funzionato bene. A proposito, ho appena seguito quel punto perché ho usato Toggle View sulla schermata Build.

1: Seleziona Toggle View e crea il tuo progetto

Attiva / disattiva vista

2: Sarai in grado di vedere esattamente cosa è successo

Errore

Domanda StackOverflow: Kotlin 1.2.50 richiede baseFeatureInfoDir

Tracker dei problemi: https://issuetracker.google.com/issues/110198434


2

Prova a rimuovere la corsa istantanea dalle impostazioni e il gradle andrà bene.

Ha funzionato per me.


2

Ecco alcuni passaggi che ho seguito ed è stato risolto il problema nel mio caso.

  1. Prima di tutto installa la versione del plugin kotlin su '1.2.31' e aggiornala nel file build.gradle come di seguito.

dipendenze {classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ 1.2.31"}

  1. Progetto pulito.

  2. Finalmente ricostruisci il progetto.


1
  1. rimuovere apply plugin: 'kotlin-kapt'
  2. aggiungi mavenCentral()in build.gradle come:

    allprojects { repositories { mavenCentral() google() jcenter() } }

  3. Sincronizza e pulisci progetto

0

Ecco l'approccio con cui risolvo questo problema per il mio caso:

Prima di tutto aggiorna la versione del tuo plugin Android Gradle dal file Gradle di build del progetto e quindi aggiorna la tua versione Gradle dalle proprietà Gradle.

Infine, aggiorna la tua versione di kotlin (obbligatoria) a kotlin_version = '1.2.30' o successiva dal file di gradle di compilazione del progetto.

Ora prova a pulire il tuo progetto e costruire. Il problema dovrebbe essere risolto. Ogni volta dopo la compilazione, se la compilazione viene eseguita di nuovo, è probabile che si verifichi di nuovo il problema, quindi è sufficiente pulire nuovamente il progetto e quindi compilare.


0

Ciò accade perché il processore di annotazione Kapt utilizza questa directory per archiviare i file generati da Kotlin. Android attualmente non riconosce il percorso per impostazione predefinita.

Vedi ulteriori dettagli


0

Aggiungendo un'altra risposta per coloro che non sono stati in grado di rimuovereInstant App Provision , perché continua a riapparire.

Costruisci il progetto manualmente: ./gradlew assembleDebug

È un aggiornamento rapido, ma funzionerà (perché il problema è probabilmente correlato ad Android Studio).


0

Ho avuto questo problema durante l'utilizzo di Realm con kotlin in Android Studio.
Per risolvere attenersi alla seguente procedura:

  1. Dopo aver aggiunto Realm al progetto build.gradle, assicurati che il file build.gradle dell'app sia così:

    apply plugin: 'com.android.application'  
    apply plugin: 'kotlin-android'  
    apply plugin: 'kotlin-android-extensions'  
    apply plugin: 'kotlin-kapt'  
    apply plugin: 'realm-android'  
    .  
    .  
    .  
    androidExtensions {  
    experimental = true
    }
  2. Usa kaptinvece annotationProcessornella tua app build.gradle dipendenze.

  3. Vai a Run -> Edit Configurations..e rimuovi Instant App Provisionopzione.

  4. Esegui questo comando nel terminale di Android Studio:

    gradlew assembleDebug  
  5. Va bene !

Nota: se viene visualizzato nuovamente il messaggio "I plug-in Gradle di terze parti potrebbero essere la causa", ripetere nuovamente i passaggi 3 e 4.


0

Configurazione su richiesta con Gradle 4.6 e versioni successive: se si utilizza Android Gradle Plugin 3.0.xo 3.1.x con Gradle 4.6 e versioni successive, è necessario disabilitare la configurazione su richiesta per evitare errori di compilazione imprevedibili. (Se si utilizza Android Gradle Plugin 3.2.0 o versione successiva, non è necessario eseguire alcuna azione per disabilitare la configurazione su richiesta.)

Disabilita la configurazione su richiesta nel file gradle.properties come mostrato di seguito:

org.gradle.configureondemand = false Per disabilitare la configurazione su richiesta nelle impostazioni di Android Studio, scegli Archivio> Impostazioni (Android Studio

Preferenze su Mac), seleziona la categoria Compilatore nel riquadro a sinistra e deseleziona la casella di controllo Configura su richiesta.

In Android Studio 3.2 Beta 1 e versioni successive, le opzioni per abilitare la configurazione su richiesta sono state rimosse. Si prega di leggere la sezione problemi noti dal link sottostante. inserisci qui la descrizione del link


0

In realtà, stavo anche affrontando lo stesso errore. Quello che ho fatto è aggiornare la mia versione di Kotlin alla più recente . Questo potrebbe risolvere il tuo problema.


-4

Bene, ho scoperto che è a causa di apply plugin: 'kotlin-kapt', se elimini questa riga in build.gradle (app), quindi costruirai con successo ...

Non ho idea del motivo per cui questo plugin genera questi avvisi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.