Przyczyną mogą być wtyczki Gradle innych firm

132

Po aktualizacji do Android Studio 3.1 otrzymałem ten komunikat o błędzie:

Projekt działa dobrze i jest to w większości tylko ostrzeżenie, więc moje pytanie brzmi: jakie jest znaczenie ostrzeżenia i jak mogę się go pozbyć?

Odpowiednie części z plików Gradle:

To jest mój projekt 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' }
    }
}

A to jest build.gradleplik mojej aplikacji :

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'
        }
    }
}
humazed
źródło
1
zgodnie z issuetracker.google.com/issues/74537216 ten problem został rozwiązany w AS3.2
Angel Koh
Build> Rebuild Projectpracował u mnie
Zohab Ali

Odpowiedzi:

143

Aby rozwiązać ten problem, usuń Instant App Provision z „Konfiguracji uruchamiania” i pozostaw tylko plik Gradle-Aware Make.

Run -> Edit Configurations..

Moje konfiguracje uruchamiania / debugowania po pomyślnej kompilacji

Mam AndroidStudio 3.1, Gradle Plugin 3.1.0i wersję biblioteki Kotlin 1.2.30.

Angel Kjoseski
źródło
5
to faktycznie działa, ale każdy pomysł, dlaczego tak się stało i jak doszedłeś do tego rozwiązania.
Humazed
59
iz jakiegoś powodu po usunięciu Instant App Provisionszawsze wraca na swoje miejsce.
Humazed
3
Czy to wyłącza natychmiastowe uruchamianie?
Caleb_Allen
7
@Caleb_Allen nie, ale i tak nikt nie używa natychmiastowego uruchamiania. To jest dla aplikacji „błyskawiczne”, nie natychmiastowy run
Tim
4
Dla każdego, u którego to powraca (jak @humazed), znalazłem rozwiązanie: najpierw przejdź do Run > Edit Configurationsponownie. Następnie przejdź do Edit Defaults, klikając przycisk z ikoną klucza u góry. Wybierz Android Appi zostaw Gradle-aware Maketak jak poprzednio. Hit zastosuj.
b_yng
17

Zrestartowałem Android Studio i problem zniknął.

Kliknij Plik -> Unieważnij pamięci podręczne / Uruchom ponownie

Za każdym razem, gdy zmieniam plik gradle, muszę ponownie uruchomić Android Studio lub problem powraca.

Możesz także spróbować tego:

  1. Zmieniono kolejność repozytoriów na:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
    
  2. Czyszczenie tego folderu: ~ / .gradle / caches użytkownika i ręczne usuwanie folderu kompilacji aplikacji , a następnie wyczyść i odbuduj .

SpkingR
źródło
Ale nadal nie mogę uruchomić mojej aplikacji, ponieważ zbuduje projekt przed jej uruchomieniem.
Nieskończone pętle
7

Co rozwiązało problem:

  • Zmień wersję wtyczki gradle na 3.1.0
  • Zmień wersję Kotlin na 1.2.30
  • Następnie studio Android zmieniło opakowanie gradle na wersję 4.4
  • Następnie studio Android powiedziało, że użyta wersja narzędzi do kompilacji to 27.0.3 i że powinienem ją zmienić, 27.0.3więc zmieniłem również docelowy SDK na27
  • Dodałem to do mojego gradle.build:

    kapt {
         generateStubs = true
     }
    

Mam nadzieję, że to pomoże

Júlia Garrigós
źródło
5

w Android Studio v3.1.2, dzieje się Błąd:

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

ponieważ dataBinding używa, apply plugin: 'kotlin-kapt'więc dodaj

kapt {
    generateStubs = true
}
  1. Zmień wersję wtyczki Gradle na 3.1.2
  2. Zmień wersję Kotlin na 1.2.30
  3. Następnie studio Android zmieniło opakowanie gradle do wersji 4.4
  4. Następnie studio Android powiedziało, że używana wersja narzędzi do kompilacji to 27.1.1 i powinienem zmienić ją na 27.1.1, więc zmieniłem również docelowy SDK na 27
任 非凡
źródło
5

Oto kilka kroków, które wykonałem. W moim przypadku problem został rozwiązany!

Moduły platformy dla Androida Aktualizacja funkcji eksperymentalnych projektów wieloplatformowych wprowadza obsługę modułów platformy Android. Te moduły powinny stosować odpowiednią wtyczkę w skrypcie budowania Gradle i mogą używać wspólnego kodu ze wspólnego modułu:

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

Lokalizacje diagnostyczne Kapt Obecnie kapt, narzędzie do przetwarzania adnotacji Kotlin, może oferować odsyłacze do lokalizacji w oryginalnym kodzie Kotlin, zamiast generowanych kodów pośredniczących Java, ponieważ zgłasza błędy napotkane podczas przetwarzania adnotacji. Możesz włączyć tę funkcję, dodając następujące wiersze do skryptu kompilacji Gradle (build.gradle):

kapt {
    mapDiagnosticLocations = true
}

Dodaj:

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

Nie zapomnij o następnym:

// 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. Wyczyść swój projekt

  2. Buduj i to wszystko!

Dodaj to wszystko, wyczyść swój projekt, zbuduj i gotowe! :) Daj mi znać, czy to działa! (Jeśli to nie działa, pomogę Ci z innym rozwiązaniem)

Więcej informacji: Witryna Android :) Daj mi znać, czy działa! (Jeśli to nie zadziała, postaram się pomóc Ci znaleźć lepszy sposób)

Jeśli oddasz głos negatywny, wyjaśnij dlaczego

Cristofer
źródło
1
Dodanie linii mapDiagnosticLocations = truedo kaptkonfiguracji działa - no czasami przynajmniej: /
kuhnroyal
@kuhnroyal Doceniam twoją opinię! Miłego dnia, szukam lepszego rozwiązania
Cristofer
5

To, co mi pomogło, to dodanie tego

kapt {
     generateStubs = true
}

do build.gradle

Andrey Aleev
źródło
3

W moim przypadku żadne z powyższych rozwiązań nie rozwiązało mojego problemu, korzystałem z wersji 1.2.50 Kotlin bez żadnej wzmianki o Instant Run, a kompilacja nie generowała klas Dagger, więc znalazłem to pytanie, które najwyraźniej rozwiązało mój problem , w mojej sytuacji jest to problem związany z nową wersją Kotlina, więc zdegradowałem do wersji 1.2.41 i działało dobrze. Nawiasem mówiąc, właśnie śledziłem do tego punktu, ponieważ użyłem ekranu Przełącz widok na ekranie kompilacji.

1: Wybierz Toggle View i skompiluj swój projekt

Przełącz widok

2: Będziesz mógł dokładnie zobaczyć, co się stało

Błąd

Pytanie dotyczące Stackoverflow : Kotlin 1.2.50 prosi o baseFeatureInfoDir

Narzędzie do śledzenia problemów: https://issuetracker.google.com/issues/110198434

Pedro Okawa
źródło
2

Spróbuj usunąć natychmiastowe uruchamianie z ustawień, a gradle będzie dobrze działać.

U mnie to zadziałało.

Munish Thakur
źródło
2

Oto kilka kroków, które wykonałem i rozwiązałem problem w moim przypadku.

  1. Przede wszystkim zainstaluj wersję wtyczki kotlin do '1.2.31' i zaktualizuj ją w pliku build.gradle jak poniżej.

zależności {classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: 1.2.31 $"}

  1. Czysty projekt.

  2. Wreszcie odbuduj projekt.

Manish Karena
źródło
1
  1. usunąć apply plugin: 'kotlin-kapt'
  2. dodaj mavenCentral()build.gradle jak:

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

  3. Synchronizuj i czyść projekt
Dan Alboteanu
źródło
0

Oto kilka podejść, jak rozwiązać ten problem w moim przypadku:

Przede wszystkim zaktualizuj wersję wtyczki gradle dla Androida z pliku gradle kompilacji projektu, a następnie zaktualizuj wersję gradle z właściwości gradle.

Na koniec zaktualizuj wersję kotlin (obowiązkową) do kotlin_version = '1.2.30' lub nowszej z pliku gradle kompilacji projektu.

Teraz spróbuj wyczyścić projekt i skompilować. Problem powinien zostać rozwiązany. Za każdym razem po kompilacji, jeśli budujesz ponownie, prawdopodobnie problem wystąpi ponownie, więc po prostu wyczyść projekt ponownie, a następnie skompiluj.

0xAliHn
źródło
0

Dzieje się tak, ponieważ procesor adnotacji Kapt używa tego katalogu do przechowywania plików wygenerowanych przez Kotlin. Obecnie system Android nie rozpoznaje ścieżki domyślnie.

Zobacz dalsze szczegóły

Virco
źródło
0

Dodanie kolejnej odpowiedzi dla tych, którzy nie mogli usunąćInstant App Provision , ponieważ ciągle się pojawia.

Zbuduj projekt ręcznie: ./gradlew assembleDebug

To poprawka, ale zadziała (bo problem prawdopodobnie dotyczy Android Studio).

mrek
źródło
0

Miałem ten problem podczas używania Realm z kotlin w Android Studio.
Aby rozwiązać, wykonaj następujące kroki:

  1. Po dodaniu usługi Realm do projektu build.gradle upewnij się, że plik build.gradle aplikacji wygląda następująco:

    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. Użyj kaptzamiast annotationProcessorw zależnościach build.gradle aplikacji.

  3. Przejdź do Run -> Edit Configurations..i usuń Instant App Provisionopcję.

  4. Uruchom to polecenie w terminalu Android Studio:

    gradlew assembleDebug  
    
  5. W porządku !

Uwaga: jeśli ponownie zobaczysz komunikat „Przyczyną mogą być wtyczki Gradle innych firm”, wykonaj ponownie kroki 3 i 4.

Mehdi I.
źródło
0

Konfiguracja na żądanie z Gradle 4.6 i nowszym: Jeśli używasz Android Gradle Plugin 3.0.x lub 3.1.x z Gradle 4.6 i nowszym, powinieneś wyłączyć konfigurację na żądanie, aby uniknąć nieprzewidywalnych błędów kompilacji. (Jeśli używasz wtyczki Android Gradle Plugin 3.2.0 lub nowszej, nie musisz podejmować żadnych działań, aby wyłączyć konfigurację na żądanie).

Wyłącz konfigurację na żądanie w pliku gradle.properties, jak pokazano poniżej:

org.gradle.configureondemand = false Aby wyłączyć konfigurację na żądanie w ustawieniach Android Studio, wybierz Plik> Ustawienia (Android Studio

Preferencje na komputerze Mac), wybierz kategorię Kompilator w lewym okienku i wyczyść pole wyboru Konfiguruj na żądanie.

W Android Studio 3.2 Beta 1 i nowszych, opcje włączania konfiguracji na żądanie zostały usunięte. Przeczytaj sekcję o znanych problemach z linku poniżej. wprowadź opis linku tutaj

Android_Developer
źródło
0

Właściwie napotkałem ten sam błąd. Zaktualizowałem moją wersję Kotlin do najnowszej . To może rozwiązać Twój problem.

Maulik Togadiya
źródło
-4

Cóż, odkryłem, że dzieje się tak z powodu apply plugin: 'kotlin-kapt',, jeśli usuniesz tę linię w build.gradle (aplikacja), to pomyślnie zbudujesz ...

Nie mam pojęcia, dlaczego ta wtyczka powoduje te ostrzeżenia.

Newamber
źródło