Korzystanie z Android Studio 3.3 Canary 11 z wersją wtyczki gradle 3.3.0-alpha11
. Zgłasza następujący błąd podczas próby synchronizacji stopnia
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
Kliknięcie błędu prowadzi mnie do tej linii w pliku stopni
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
Co dokładnie muszę zmienić tutaj?
projekt 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'
}
aplikacja 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'
Pominąłem kilka stałych i innych poufnych informacji w pliku app / build.gradle.
android
firebase
android-studio
android-gradle-plugin
fabric.io
Jude Fernandes
źródło
źródło
Odpowiedzi:
Problem został naprawiony w najnowszej wersji
'io.fabric.tools:gradle:1.30.0'
Zaktualizuj oba narzędzia do tkanin stopniowych do wersji 1.30.0
Aby uzyskać więcej informacji https://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453
źródło
classpath 'io.fabric.tools:gradle:1.31.0'
iimplementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
. Jest albo ponownie zepsuty, albo nie został naprawiony we wszystkich przypadkach.EDYTOWAĆ
Ten problem został rozwiązany w wersji 1.28.0 . Na swoim
build.gradle
poziomie projektu dodaj następujący wiersz:Poprzednia odpowiedź
Dzieje się tak po aktualizacji Androida Studio do 3.3.0.
apply plugin: 'io.fabric'
jest przyczyną. Wysłałem raport o błędzie do zespołu Firebase dotyczący tego problemu.Masz 3 opcje:
Poczekaj na wydanie kolejnej wersji wtyczki Fabric. Sprawdź najnowszą wersję tutaj .
Przejdź na Androida Studio 3.2.1 .
Skomentuj
io.fabric
wtyczkę.W
build.gradle
module aplikacji:Nadal jednak możesz budować i uruchamiać projekty, nawet jeśli pojawia się ten błąd. Po prostu to zignoruj.
źródło
io.fabric
wtyczki, jak mogę usunąć to ostrzeżenie bez zmiany?w aplikacji build.gradle, przejdź na tę stabilną wersję gradle:
Dzieje się tak po zaktualizowaniu Android Studio do 3.3, tymczasowego rozwiązania, dopóki go nie naprawią!
edycja: nie musisz obniżać poziomu swojego studia Android!
źródło
AKTUALIZACJA Na dzień dzisiejszy można użyć
classpath 'io.fabric.tools:gradle:1.28.0'
do rozwiązania tego problemu!Jeśli komentowanie
Crashlytics
wtyczkiio.fabric
w pliku ocen aplikacji działało tymczasowoNastępnie uaktualnienie zależności stopni tkaniny od pliku stopni projektu na stałe rozwiąże problem:
Uwaga: to nie usuwa ostrzeżeń, ale pozwala używać Crashlytics z AS3.3 +
źródło
crashlytics
włączonym. Aby zachować Crashlytics i nadal naciskać na prod, możesz skorzystać z wyżej wymienionej aktualizacji, nawet jeśli nadal wywołuje ona „ostrzeżenia”.Nie jestem pewien, jaki jest rzeczywisty problem, ale komentowanie zależności związanych z awariami od rozwiązania problemu.
źródło
Potwierdzono to jako błąd dla Crashlytics i oni nad tym pracują.
https://issuetracker.google.com/issues/116408637
Cytat od cesjonariusza Google:
Dla mnie moja aplikacja do debugowania działa dobrze na moim urządzeniu, po prostu uruchamiając i ignorując ostrzeżenie bez komentowania Crashlytics lub Fabric. Nie próbowałem do produkcji.
Aktualizacja:
Google Issue Tracker oznaczył te problemy jako Won't Fix (Infeasible), ponieważ wszystkie problemy pochodziły od Crashlytics, i pozwolił na poprawki dokonane przez zespół Crashlytics (mimo że są tymi samymi Googlerami ...).
Sugerują skorzystanie z tego linku w celu aktualizacji Crashlytics:
https://github.com/firebase/firebase-android-sdk/issues/198
Uwaga: nadal używam Android Studio 3.3 z io.fabric.tools:gradle:1.26.0 bez komentowania Craslytics i działa dobrze w mojej aplikacji do debugowania.
Aktualizacja:
Mogę teraz potwierdzić, że działa dobrze w mojej aplikacji w wersji produkcyjnej / wydanej. Skąd mam wiedzieć, że to działa? Ponieważ odesłał mi raporty o awariach -_-
W każdym razie po prostu zignoruj to ostrzeżenie, w końcu powinny je naprawić.
Aww, po prostu przeczytaj, że naprawił się z tkaniną 1.28.0 :)
źródło
Najnowsze wiadomości z 24.01.2019
Informacje tutaj https://issuetracker.google.com/issues/116408637
Musimy poczekać, aż Crashlytics wymyśli rozwiązanie, oto problem GitHub
https://github.com/firebase/firebase-android-sdk/issues/198
Jedynym sposobem, w jaki teraz używam, aby nie komentować wtyczki io.fabric, jest obniżenie stopnia oceny i uaktualnienie ścieżki klas tkanin (działa to w mojej aplikacji produkcyjnej)
źródło
-dontwarn com.crashlytics.android.Crashlytics
wproguard-rules.pro
Jak powiedziano, problem tkwi w Fabric / Crashlytics.
Jest to błąd po stronie Crashlytics / Firebase, sprawdź następujący link i sprawdź status błędu: https://github.com/firebase/firebase-android-sdk/issues/198
źródło
narzędzie do śledzenia problemów może odnosić się do „konfiguracji leniwego zadania” -
to przynajmniej unikanie konfiguracji zadań sugeruje .
ale prawdopodobnie można uniemożliwić dostęp do tej przestarzałej metody
BaseVariantImpl
, kiedyvariant.outputs.all
nie uzyska się dostępu do tej metody (wewnętrznie) - lub gdy kontrole mogą uniemożliwić dostęp; lub podczas uzyskiwania dostępu do wariantu według jego nazwy; lub w jakiś sposób wyłącz zewnętrzne zadania kompilacji natywnej dla wariantu. zobacz także synchronizację projektu w jednym wariancie opcję , która wydaje się raczej powiązana.lub poczekaj na narzędzia do budowania
3.3.0-alpha12
lub3.3.0-beta1
... to nawet nie jestrelease candidate
, dlatego inwestowanie zbyt wiele czasu może być bezcelowe - z wyjątkiem użycia go do zgłoszenia kolejnego zgłoszenia błędu.nowy przycisk szybkiego sprzężenia zwrotnego nadal wygląda najbardziej obiecująco.
źródło
android.debug.obsoleteApi=true
aby zobaczyć, skąd pochodzi. zmieniono nazwy kilku metod zProvider
dołączonymi do ich nazw.3.3.0
wydanie złamało kilka rzeczy, ponieważ zmienił się wariant interfejsu API. może połączyć jedną ostatnią dyskusję: stackoverflow.com/questions/54206898/... (tam dodano podsumowanie jako odpowiedź).Dla mnie wykonałem następujące kroki: 1. zaktualizuj zależność Gradle od poziomu build.gradle projektu.
dodaj tę zależność wtyczki poniżej zastosuj wtyczkę: 'com.android.application' w build.gradle na poziomie aplikacji.
Zsynchronizuj projekt z plikami stopni.
źródło
Dzieje się tak z powodu aktualizacji Twojego Androida Studio z Android Studio 3.2.0 do Android Studio 3.3.0. Zaktualizuj swoje gradne zależności (projekt) IO.Fabric. Lubić:
a także zaktualizuj swoją wersję Kotlin do
To rozwiąże te problemy. Dzięki
źródło
Dziennik kompilacji drukuje, jak to debugować, szczególnie musisz uruchomić kompilację
-Pandroid.debug.obsoleteApi=true
, która wydrukuje śledzenie stosu wywołania do przestarzałego API i będziesz w stanie ustalić, która wtyczka / kod go wywołuje.Jeśli okaże się, że to Twój kod - użyj nowego interfejsu API dostawcy ( przeczytaj dokument Lazy Task Configuration )
Jeśli pochodzi z innej wtyczki - zgłoś do nich komunikat śledzenia stosu i komunikat ostrzegawczy, a może prześlij łatkę. Jak w tym przypadku jest to związane z
io.fabric
problemem.źródło
zostało to naprawione w najnowszej wersji wtyczki Gradient Fabric, 1.28.0, która została uruchomiona dzisiaj. Miej to w swojej kompilacji najwyższego poziomu. Gradle:
źródło
Kiedy otworzyłem projekt, nacisnąłem
Run migrations
przycisk pojawiający się w prawym dolnym rogu odAndroid Studio
. Przeprowadzono migrację, a problem rozwiązano bez komentowaniaCrashlytics
zależności.źródło
Zmiana zgodności źródła w
build.gradle
pliku modułu na Javę 8 rozwiązuje problemPamiętaj, aby odbudować projekt po dodaniu tych wierszy
źródło
build.gradle
lub na poziomie modułu (/ app)?naprawi to błąd: Na pasku zadań kliknij Narzędzia-> Kotlin-> Konfiguruj Kotlin w Projekcie
źródło
W moim przypadku musiałem użyć
io.fabric
wtyczki, a rozwiązaniem było zaktualizowanie do najnowszej wersji narzędzia do tkanin:źródło
Dla tych, którzy muszą zachować zastosowaną wtyczkę Fabric, tymczasowym rozwiązaniem jest powrót do poprzedniej wersji klasy na poziomie projektu.
Zmień wersję ścieżki klas na
com.android.tools.build:gradle:3.2.1
.źródło
To był problem z najnowszą
gradle
(w moim przypadku3.3.2
) wersją iFabric.io
wtyczką. Jest teraz rozwiązany przez nową wersję Użytkownicy powinni mieć to na swoim najwyższym poziomiebuild.gradle
:źródło
Naprawiono aktualizację plików stopni kompilacji katalogu głównego do najnowszej. I ta odpowiedź jest teraz prawdą. po raz kolejny nowa zmiana będzie wdrażana przez gradle i Android SDK. Czasami odpowiedź będzie się zmieniać w miarę upływu czasu.
źródło
po pierwsze nie jest to błąd
to ostrzeżenie
i pojawia się, gdy aktualizacja do wersji 3.3.0 Często występuje, ponieważ io.fabric, więc poczekaj, aż aktualna wersja sieci aktualizacji, w której nadal pojawia się ostrzeżenie, to „io.fabric.tools:gradle:1.27.1”
źródło