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.gradle
plik 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'
}
}
}
Build
>Rebuild Project
pracował u mnieOdpowiedzi:
Aby rozwiązać ten problem, usuń
Instant App Provision
z „Konfiguracji uruchamiania” i pozostaw tylko plikGradle-Aware Make
.Mam AndroidStudio
3.1
, Gradle Plugin3.1.0
i wersję biblioteki Kotlin1.2.30
.źródło
Instant App Provisions
zawsze wraca na swoje miejsce.Run > Edit Configurations
ponownie. Następnie przejdź doEdit Defaults
, klikając przycisk z ikoną klucza u góry. WybierzAndroid App
i zostawGradle-aware Make
tak jak poprzednio. Hit zastosuj.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:
Zmieniono kolejność repozytoriów na:
mavenCentral() maven { url 'https://jitpack.io' } google() jcenter()
Czyszczenie tego folderu: ~ / .gradle / caches użytkownika i ręczne usuwanie folderu kompilacji aplikacji , a następnie wyczyść i odbuduj .
źródło
Co rozwiązało problem:
3.1.0
1.2.30
4.4
27.0.3
i że powinienem ją zmienić,27.0.3
więc zmieniłem również docelowy SDK na27
Dodałem to do mojego gradle.build:
kapt { generateStubs = true }
Mam nadzieję, że to pomoże
źródło
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 dodajkapt { generateStubs = true }
źródło
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"
Wyczyść swój projekt
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
źródło
mapDiagnosticLocations = true
dokapt
konfiguracji działa - no czasami przynajmniej: /To, co mi pomogło, to dodanie tego
kapt { generateStubs = true }
do build.gradle
źródło
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
2: Będziesz mógł dokładnie zobaczyć, co się stało
Pytanie dotyczące Stackoverflow : Kotlin 1.2.50 prosi o baseFeatureInfoDir
Narzędzie do śledzenia problemów: https://issuetracker.google.com/issues/110198434
źródło
Spróbuj usunąć natychmiastowe uruchamianie z ustawień, a gradle będzie dobrze działać.
U mnie to zadziałało.
źródło
Oto kilka kroków, które wykonałem i rozwiązałem problem w moim przypadku.
Czysty projekt.
Wreszcie odbuduj projekt.
źródło
apply plugin: 'kotlin-kapt'
dodaj
mavenCentral()
build.gradle jak:allprojects { repositories { mavenCentral() google() jcenter() } }
źródło
Oto kilka podejść, jak rozwiązać ten problem w moim przypadku:
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.
źródło
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
źródło
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).
źródło
Miałem ten problem podczas używania Realm z kotlin w Android Studio.
Aby rozwiązać, wykonaj następujące kroki:
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 }
Użyj
kapt
zamiastannotationProcessor
w zależnościach build.gradle aplikacji.Przejdź do
Run -> Edit Configurations..
i usuńInstant App Provision
opcję.Uruchom to polecenie w terminalu Android Studio:
W porządku !
Uwaga: jeśli ponownie zobaczysz komunikat „Przyczyną mogą być wtyczki Gradle innych firm”, wykonaj ponownie kroki 3 i 4.
źródło
źródło
Właściwie napotkałem ten sam błąd. Zaktualizowałem moją wersję Kotlin do najnowszej . To może rozwiązać Twój problem.
źródło
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.
źródło