После обновления до Android Studio 3.1 я получил следующее сообщение об ошибке:
Проект работает нормально, и это в основном просто предупреждение, поэтому мой вопрос: в чем смысл предупреждения и как от него избавиться?
Соответствующие части из файлов Gradle:
Это 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' }
}
}
А вот файл build.gradle моего приложения:
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 работал у меня
Вот несколько подходов к решению этой проблемы в моем случае:
First of all update your android gradle plugin version from project build gradle file and then update your gradle version from gradle properties.
Finally update your kotlin version(Mandatory) to kotlin_version = '1.2.30' or later from project build gradle file.
Теперь попробуйте очистить свой проект и собрать. Вопрос должен быть решен. Каждый раз после сборки, если вы строите снова, вероятно, проблема возникнет снова, поэтому просто очистите свой проект еще раз, а затем выполните сборку.
Попробуйте удалить Instant run из настроек, и gradle будет хорошо.
У меня это сработало.
Чтобы решить эту проблему, УдалитьInstant App Provision из «Run Configurations» и оставьте только Gradle-Aware Make.
Run -> Edit Configurations..
У меня есть AndroidStudio 3.1, плагин Gradle 3.1.0 и версия библиотеки Kotlin 1.2.30.
это действительно работает, но любая идея, почему это происходило и как вы пришли к этому решению.
и почему-то после удаления Instant App Provisions всегда возвращается на место.
Сработало для меня, но я также хотел бы знать, в чем проблема. Кто-нибудь подавал в Google жалобу на непонятное предупреждающее сообщение?
Я создал проблему в системе отслеживания ошибок, чтобы улучшить предупреждающее сообщение: Issuesetracker.google.com/issues/77356844
@PeterSamokhin, можете ли вы подтвердить, что изменение применяется? У меня тоже была эта проблема, и Instant App Provisions продолжает появляться всякий раз, когда создается новое окно AS, несмотря на применение изменений и обновление всех конфигураций запуска по умолчанию.
@AllanW очистил локальные кеши Gradle (~/.gradle), все кеши проекта, все файлы IDE (/.idea/, *.iml), удалил Instant App Provisions, заменил kotlin-stdlib-jre7 на kotlin-stdlib, попробовал Invalidate & restart. И все еще нет смысла
@PeterSamokhin попробуйте сделать кеш недействительным и перезапустить (в файлах), и если это не сработает, попробуйте повторно импортировать проект снова, а не открывать последний проект.
Еще один тест, который я сделал, - это запустить сборку на таком CI, как Travis. Вы также можете попробовать запустить команду gradle через командную строку, чтобы убедиться, что проблема связана со студией Android.
@AllanW попытался собрать и запустить с помощью gradle, и все было в порядке. Пытался реимпорт (клонировать из git), тоже не помогает.
Это отключает мгновенный запуск?
@Caleb_Allen нет, но все равно никто не использует мгновенный запуск. Это для «мгновенных приложений», а не для мгновенного запуска
Для тех, кто продолжает возвращаться (например, @humazed), я нашел исправление: сначала снова перейдите на Run > Edit Configurations. Затем перейдите к Edit Defaults, нажав кнопку со значком гаечного ключа вверху. Выберите Android App и оставьте только Gradle-aware Make, как раньше. Хит применить.
Если вы все еще сталкиваетесь с этой проблемой, похоже, она была исправлена, начиная с AS 3.2 beta1: androidstudio.googleblog.com/2018/06/… (см. «Android Studio выдавала лишние предупреждения о папках, созданных kapt»).
Программирование под Android с каждым днем становится все более и более нелепым.
Что устранило проблему для меня:
3.1.01.2.304.4.27.0.3 и что я должен изменить его на 27.0.3, поэтому я также изменил целевой SDK на 27Я добавил это в свой gradle.build:
kapt {
generateStubs = true
}
Я надеюсь, что это помогает
Вот несколько шагов, которые я выполнил. В моем случае проблема решена!
Модули платформы для Android В обновлении функции экспериментальных мультиплатформенных проектов добавлена поддержка модулей платформы Android. Эти модули должны применять соответствующий плагин в скрипте сборки Gradle и могут использовать общий код из общего модуля:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// ...
// ...
Kapt диагностические места На данный момент kapt, инструмент обработки аннотаций Kotlin, может предлагать ссылки на места в исходном коде Kotlin, а не сгенерированные Java-заглушки, поскольку он сообщает об ошибках, обнаруженных во время обработки аннотаций. Вы можете включить эту функцию, добавив эти строки в скрипт сборки Gradle (build.gradle):
kapt {
mapDiagnosticLocations = true
}
Добавь это:
allprojects {
repositories {
jcenter()
google()
}
}
Не забывайте следующее:
// 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"
Очистите свой проект
Собери и готово!
Добавьте все это, очистите свой проект, соберите и все! :) Сообщите мне, если это сработает! (Если у вас не работает, я помогу вам с другим решением)
Больше информации:Android-сайт:) Сообщите мне, если это сработает! (Если не сработает, я постараюсь помочь вам найти лучший способ)
Если вы дадите голосование, объясните, почему
Добавление строки mapDiagnosticLocations = true в конфигурацию kapt работает - ну, по крайней мере, иногда: /
@kuhnroyal Я ценю ваш отзыв! Хорошего дня, я продолжаю искать лучшее решение
Вот несколько шагов, которые я выполнил, и в моем случае проблема была решена.
dependencies { classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$1.2.31" }
Чистый проект.
Наконец, перестройте проект.
Что ж, я обнаружил, что это из-за apply plugin: 'kotlin-kapt' ,, если вы удалите эту строку в build.gradle (app), вы успешно выполните сборку ...
Понятия не имею, почему этот плагин выдает эти предупреждения.
в android studio v3.1.2 произошла ошибка:
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
поскольку dataBinding использует apply plugin: 'kotlin-kapt', поэтому добавьте
kapt {
generateStubs = true
}
Я перезапустил Android Studio, и проблема исчезла.
Нажмите File -> Invalidate Caches / Restart.
Каждый раз, когда я меняю файл gradle, я должен перезапустить Android Studio, иначе проблема вернется.
Вы также можете попробовать это:
Переупорядочены репозитории, чтобы:
mavenCentral()
maven { url 'https://jitpack.io' }
google()
jcenter()
Очистка этой папки: пользовательский ~ / .gradle / кеши и удаление приложение папка сборки вручную, затем очистить и восстановить.
Но я все еще не могу запустить свое приложение, так как оно построит проект перед его запуском.
Это происходит потому, что процессор аннотаций Kapt использует этот каталог для хранения файлов, сгенерированных Kotlin. Android в настоящее время не распознает путь по умолчанию.
Что мне действительно помогло, так это добавление этого
kapt {
generateStubs = true
}
в build.gradle
Добавляем еще один ответ для тех, кто не удалось удалить Instant App Provision, потому что он продолжает появляться.
Соберите проект вручную: ./gradlew assembleDebug
Это исправление, но оно будет работать (поскольку проблема, вероятно, связана с Android Studio).
В моем случае ни одно из вышеперечисленных решений не решило мою проблему, я использовал версию 1.2.50 Kotlin без какого-либо упоминания о Instant Run, а сборка не генерировала классы Dagger, поэтому я выяснил, что этот вопрос, по-видимому, решил мою проблему , в моей ситуации это проблема, связанная с новой версией Kotlin, поэтому я перешел на версию 1.2.41 и работал нормально. Кстати, я просто дошел до этого момента, потому что использовал Toggle View на экране сборки.
1. Выберите Toggle View и создайте свой проект.
2. Вы сможете точно увидеть, что произошло
Вопрос о стеке: Kotlin 1.2.50 запрашивает baseFeatureInfoDir
Система отслеживания проблем: https://issuetracker.google.com/issues/110198434
apply plugin: 'kotlin-kapt'добавить mavenCentral() в build.gradle, например:
allprojects {
repositories {
mavenCentral()
google()
jcenter() } }
У меня была эта проблема при использовании Область с kotlin в студии Android. Чтобы решить, выполните следующие действия:
После добавления Realm в проект build.gradle убедитесь, что файл build.gradle вашего приложения выглядит следующим образом:
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
}
Используйте kapt вместо annotationProcessor в зависимостях build.gradle вашего приложения.
Перейдите к Run -> Edit Configurations.. и удалите опцию Instant App Provision.
Запустите эту команду в терминале студии Android:
gradlew assembleDebug
Ничего страшного !
Примечание. Если вы снова видите сообщение «Причиной могут быть сторонние плагины Gradle», повторите шаги 3 и 4.
Configuration on demand with Gradle 4.6 and above: If you're using Android Gradle Plugin 3.0.x or 3.1.x with Gradle 4.6 and above, you should disable configuration on demand to avoid some unpredictable build errors. (If you are using Android Gradle Plugin 3.2.0 or higher, you do not need to take any action to disable configuration on demand.)
Disable configuration on demand in your gradle.properties file as shown below:
org.gradle.configureondemand=false To disable configuration on demand in the Android Studio settings, choose File > Settings (Android Studio
Preferences on Mac), select the Compiler category in the left pane, and clear the Configure on demand checkbox.
In Android Studio 3.2 Beta 1 and higher, the options for enabling configuration on demand have been removed. Please read known issues section from below link. enter link description here
Собственно, я тоже столкнулся с той же ошибкой. Я обновил свою версию kotlin до последний. Это может решить вашу проблему.
согласно Issuesetracker.google.com/issues/74537216 эта проблема исправлена в AS3.2