Использование Android Studio 3.3 Canary 11 с версией плагина gradle 3.3.0-alpha11
. Выдает следующую ошибку при попытке синхронизировать Gradle
WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been
replaced with 'variant.getExternalNativeBuildProviders()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-
avoidance
Affected Modules: app
Нажатие на ошибку приводит меня к этой строке в файле Gradle
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
Что именно мне нужно изменить здесь?
проект build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral() // jcenter() works as well because it pulls from Maven Central
maven { url "https://maven.google.com" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "io.realm:realm-gradle-plugin:4.1.1"
classpath 'com.google.gms:google-services:3.2.1'
classpath 'com.google.firebase:firebase-plugins:1.1.5'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://maven.google.com" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
// Define versions in a single place
ext {
// Sdk and tools
minSdkVersion = 21
targetSdkVersion = 27
compileSdkVersion = 27
buildToolsVersion = '27.0.3'
// App dependencies
supportLibraryVersion = '27.1.1'
appCompactLibraryVersion = '27.1.1'
playServicesVersion = '15.0.1'
firebaseVersionCore = '16.0.1'
firebaseVersionPerf = '16.0.0'
firebaseVersionMessaging = '17.1.0'
//lottie
lottieVersion = '2.5.0'
}
приложение build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.25.4'
}
buildscript {
repositories {
maven { url "https://maven.google.com" }
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
// These docs use an open ended version so that our plugin
// can be updated quickly in response to Android tooling updates
// We recommend changing it to the latest version from our changelog:
// https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
classpath 'io.fabric.tools:gradle:'
}
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
apply plugin: 'io.fabric'
apply plugin: 'realm-android'
android {
realm {
syncEnabled = false
}
dexOptions {
javaMaxHeapSize "4g"
}
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "example.com"
minSdkVersion rootProject.ext.minSdkVersion
multiDexEnabled true
versionCode mVersionCode
versionName mVersionName
vectorDrawables.useSupportLibrary = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
release {
shrinkResources true
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
lintOptions {
disable 'MissingTranslation'
}
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
}
debug {
shrinkResources true
minifyEnabled true
useProguard true
debuggable true
versionNameSuffix '-DEBUG'
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'debug-proguard-rules.pro'
ext.enableCrashlytics = false
crunchPngs false
}
}
flavorDimensions "default"
lintOptions {
checkReleaseBuilds false
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
buildToolsVersion '28.0.2'
}
configurations {
implementation.exclude group: "org.apache.httpcomponents", module: "httpclient"
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.android.support:appcompat-v7:$rootProject.appCompactLibraryVersion"
implementation "com.android.support:support-compat:$rootProject.supportLibraryVersion"
implementation "com.android.support:mediarouter-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"
implementation "com.android.support:design:$rootProject.supportLibraryVersion"
api 'com.squareup.retrofit2:retrofit:2.4.0'
api 'com.squareup.okhttp3:okhttp:3.11.0'
api 'com.squareup.okhttp3:logging-interceptor:3.10.0'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.3.0'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.daimajia.easing:library:2.0@aar'
implementation 'com.daimajia.androidanimations:library:2.3@aar'
implementation 'com.akexorcist:googledirectionlibrary:1.0.5'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation 'io.reactivex:rxjava:1.3.0'
// Wifi hotspot library
implementation 'cc.mvdan.accesspoint:library:0.2.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'org.jsoup:jsoup:1.10.3'
api "com.airbnb.android:lottie:$rootProject.lottieVersion"
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:recyclerview-v7:27.1.1'
testImplementation 'junit:junit:4.12'
implementation 'com.jakewharton:butterknife:8.8.1'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
implementation 'com.googlecode.libphonenumber:libphonenumber:8.2.0'
implementation "com.google.android.gms:play-services-base:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-cast-framework:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-auth:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-identity:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-awareness:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-cast:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-drive:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-location:$rootProject.playServicesVersion"
implementation "com.google.android.gms:play-services-maps:$rootProject.playServicesVersion"
implementation "com.google.firebase:firebase-core:$rootProject.firebaseVersionCore"
implementation "com.google.firebase:firebase-perf:$rootProject.firebaseVersionPerf"
implementation "com.google.firebase:firebase-messaging:$rootProject.firebaseVersionMessaging"
implementation "com.google.firebase:firebase-analytics:$rootProject.firebaseVersionCore"
api('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
transitive = true
}
api('com.crashlytics.sdk.android:answers:1.4.1@aar') {
transitive = true
}
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
api project(path: ':libraryBTHelper')
api project(':bkk_rush')
debugApi 'com.amitshekhar.android:debug-db:1.0.3'
api "org.jdeferred:jdeferred-android-aar:1.2.6"
implementation 'com.android.support:gridlayout-v7:27.1.1'
}
apply plugin: 'com.google.gms.google-services'
Я пропустил несколько констант и другую конфиденциальную информацию в файле app / build.gradle.
android
firebase
android-studio
android-gradle-plugin
fabric.io
Джуд Фернандес
источник
источник
Ответы:
Проблема была исправлена в их последней версии
'io.fabric.tools:gradle:1.30.0'
Пожалуйста, обновите ваши оба Gradle Fabric Tools до 1.30.0
Для более подробной информации https://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453
источник
classpath 'io.fabric.tools:gradle:1.31.0'
иimplementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
. Он либо сломан снова, либо не исправлен во всех случаях.РЕДАКТИРОВАТЬ
Эта проблема была исправлена в Fabric 1.28.0 . На вашем
build.gradle
уровне проекта добавьте следующую строку:Предыдущий ответ
Это происходит после того, как я обновил Android Studio до 3.3.0.
apply plugin: 'io.fabric'
это причина. Я отправил отчет об ошибке в команду Firebase об этой проблеме.У вас есть 3 варианта:
Подождите, пока не выйдет следующая версия плагина Fabric. Проверьте последнюю версию здесь .
Переход на Android Studio 3.2.1 .
Закомментируйте
io.fabric
плагин.В
build.gradle
модуле вашего приложения:Однако вы все равно можете создавать и запускать свои проекты, даже если эта ошибка появляется. Просто игнорируй это.
источник
io.fabric
плагин, то как я могу удалить это предупреждение, не меняя его?в приложении build.gradle перейдите на эту стабильную версию gradle:
Это происходит после того, как я обновил Android Studio до версии 3.3, пока решение не будет исправлено!
редактировать: вам не нужно понижать вашу андроид студию!
источник
ОБНОВЛЕНИЕ На сегодняшний день вы можете использовать
classpath 'io.fabric.tools:gradle:1.28.0'
чтобы исправить эту проблему!Если закомментировав
Crashlytics
плагинio.fabric
для файла приложения, он временно работал для васЗатем обновление ваших зависимостей структуры матрицы из файла проекта gradle навсегда решит проблему:
NB: это не удаляет предупреждения, но позволяет вам использовать Crashlytics с AS3.3 +
источник
crashlytics
включенным. Таким образом, чтобы сохранить Crashlytics и прилагать все усилия, вы можете использовать вышеупомянутое обновление, даже если оно все еще вызывает «предупреждения».Не уверен, что является фактической проблемой, но комментируя зависимости, относящиеся к сбою, из решенной проблемы проекта.
источник
Это подтверждено как ошибка для Crashlytics, и они работают над этим.
https://issuetracker.google.com/issues/116408637
Цитируется от правопреемника Google:
Для меня мое приложение отладки работает нормально на моем устройстве, просто запустив и игнорируя предупреждение, не комментируя Crashlytics или Fabric. Я не пытался для производства.
Обновить:
Google Issue Tracker пометил эти проблемы как Не Исправить (Невозможно), потому что все проблемы были из Crashlytics, и разрешил исправления, сделанные командой Crashlytics (несмотря на то, что они те же Googler ...).
Они предлагают перейти по этой ссылке для обновления Crashlytics:
https://github.com/firebase/firebase-android-sdk/issues/198
Примечание: я все еще использую Android Studio 3.3 с io.fabric.tools:gradle:1.26.0, не комментируя Craslytics, и он отлично работает в моем приложении отладки.
Обновить:
Теперь я могу подтвердить, что он отлично работает в моей рабочей версии. Как я знаю, что это работает? Потому что он отправил мне обратно отчеты о сбоях -_- '
В любом случае, просто проигнорируйте предупреждение, они должны исправить это в конце концов.
Ой, просто прочитайте, что это было исправлено с тканью 1.28.0 :)
источник
Последние новости от 24.01.2009
Информация здесь https://issuetracker.google.com/issues/116408637
Нам нужно будет подождать, пока Crashlytics не придумала решение, вот проблема GitHub открыта
https://github.com/firebase/firebase-android-sdk/issues/198
Единственный способ, которым я сейчас пользуюсь, чтобы не комментировать плагин io.fabric, - это понижение уровня моего gradle и обновление моего пути к классам ткани (это работает над моим рабочим приложением)
источник
-dontwarn com.crashlytics.android.Crashlytics
вproguard-rules.pro
Как уже было сказано, проблема с Fabric / Crashlytics.
Это ошибка на стороне Crashlytics / Firebase, пожалуйста, проверьте следующую ссылку и посмотрите статус ошибки: https://github.com/firebase/firebase-android-sdk/issues/198
источник
средство отслеживания проблем может относиться к «отложенной конфигурации задачи» -
это, по крайней мере, то, что предлагает избегание конфигурации задачи .
но, возможно, можно запретить доступ к этому устаревшему методу
BaseVariantImpl
, когдаvariant.outputs.all
не получит доступ к этому методу (внутренне) - или когда проверки могут заблокировать доступ; или при доступе к варианту по его имени; или как-то отключить внешние собственные задачи сборки для варианта. см. также вариант синхронизации проекта вариантом, который скорее кажется связанным.или подожди build-tools
3.3.0-alpha12
или3.3.0-beta1
... это даже неrelease candidate
, поэтому тратить много времени бессмысленно - разве что использовать его для составления другого отчета об ошибке.новая кнопка быстрой обратной связи по- прежнему выглядит наиболее многообещающе.
источник
android.debug.obsoleteApi=true
чтобы узнать, откуда он. было переименовано несколько методов сProvider
добавлением к их имени.3.3.0
Релиз сломал несколько вещей, так как вариант API изменился. Можно связать одно недавнее обсуждение: stackoverflow.com/questions/54206898/… (добавлено резюме в качестве ответа).Для меня я выполнил следующие шаги: 1. обновить зависимость Gradle на уровне проекта build.gradle.
Добавьте эту зависимость от плагина ниже. Примените плагин: 'com.android.application' на уровне приложения build.gradle.
Синхронизируйте проект с файлами Gradle.
источник
Это происходит из-за обновления вашей Android Studio с Android Studio 3.2.0 до Android Studio 3.3.0. Обновите ваши зависимости Gradle (проект) IO.Fabric. Подобно:
а также обновите версию Kotlin до
Это решит эту проблему. Спасибо
источник
В журнале сборки выводится, как это отладить, особенно вам нужно запустить сборку с
-Pandroid.debug.obsoleteApi=true
, которая напечатает трассировку стека вызова устаревшего API, и вы сможете определить, какой плагин / код вызывает его.Если это в конечном итоге ваш код - используйте новый API провайдера (см. Документ Lazy Task Configuration )
Если это исходит от другого плагина - сообщите об этом с помощью трассировки стека и предупреждающего сообщения и, возможно, отправьте патч. Как и в этом случае, это связано с
io.fabric
вопросом.источник
это было исправлено в последнем выпуске плагина gradle Fabric, 1.28.0, который вышел сегодня. Имейте это в вашем верхнем уровне build.gradle:
источник
Когда я открыл проект, я нажал
Run migrations
кнопку, появившуюся в правом нижнем углу отAndroid Studio
. Была выполнена миграция, и проблема была решена без комментированияCrashlytics
зависимости.источник
Изменение совместимости исходного кода в
build.gradle
файле модуля на Java 8 устраняет проблемуОбязательно перестройте проект после добавления этих строк
источник
build.gradle
или на уровне модуля (/ приложение)?это исправит ошибку: На панели задач выберите Сервис-> Kotlin-> Настроить Kotlin в Project.
источник
В моем случае мне нужно было использовать
io.fabric
плагин, и решение было, чтобы обновить его до последней версии:источник
Для тех, кому необходимо применить подключаемый модуль Fabric, временное решение - вернуться к предыдущей версии Gradle на уровне проекта.
Измените версию пути к классу
com.android.tools.build:gradle:3.2.1
.источник
Это была проблема с последней
gradle
(в моем случае3.3.2
) версией иFabric.io
плагином. Теперь это решается с помощью новой версии. Пользователи должны иметь это на своем верхнем уровнеbuild.gradle
:источник
Исправление - это обновление корневых файлов сборки до последней версии. И этот ответ верен сейчас. В будущем снова новые изменения будут реализованы с помощью Gradle и Android SDK. Время от времени ответ будет меняться со временем.
источник
в первую очередь это не ошибка
это предупреждение
и он появляется при обновлении до версии 3.3.0. Часто это происходит из-за того, что io.fabric подождет, пока текущая версия обновленной структуры, в которой все еще отображается предупреждение, будет io.fabric.tools:gradle:1.27.1.
источник