Menggunakan Android Studio 3.3 Canary 11 dengan versi plugin gradle 3.3.0-alpha11
. Itu melempar kesalahan berikut ketika mencoba menyinkronkan 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
Mengklik kesalahan menuntun saya ke baris ini di file gradle
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
Apa yang sebenarnya perlu saya ubah di sini?
proyek 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'
}
aplikasi 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'
Saya telah melewatkan beberapa konstanta dan informasi sensitif lainnya di file app / build.gradle.
android
firebase
android-studio
android-gradle-plugin
fabric.io
Jude Fernandes
sumber
sumber
Jawaban:
Masalah telah diperbaiki dalam rilis terbaru mereka
'io.fabric.tools:gradle:1.30.0'
Harap perbarui kedua alat kain gradle Anda dengan 1.30.0
Untuk perincian lebih lanjut https://github.com/firebase/firebase-android-sdk/issues/198#issuecomment-473435453
sumber
classpath 'io.fabric.tools:gradle:1.31.0'
danimplementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
. Baik rusak lagi atau tidak diperbaiki untuk semua kasus.EDIT
Masalah ini telah diperbaiki di Fabric 1.28.0 . Di
build.gradle
tingkat proyek Anda, tambahkan baris berikut:Jawaban Sebelumnya
Itu terjadi setelah saya memperbarui Android Studio ke 3.3.0.
apply plugin: 'io.fabric'
adalah penyebabnya. Saya telah mengirim laporan bug ke tim Firebase tentang masalah ini.Anda memiliki 3 opsi:
Tunggu hingga plugin Fabric versi berikutnya dirilis. Periksa versi terbaru di sini .
Turun ke Android Studio 3.2.1 .
Mengomentari
io.fabric
plugin.Di
build.gradle
dalam modul aplikasi Anda:Namun, Anda masih dapat membangun dan menjalankan proyek Anda meskipun kesalahan ini muncul. Abaikan saja.
sumber
io.fabric
plugin lalu bagaimana saya bisa menghapus peringatan ini tanpa mengubah ini?dalam aplikasi build.gradle, turunkan versi ke versi stabil gradle ini:
Itu terjadi setelah saya memperbarui Android Studio ke 3.3, temp solusi sampai mereka memperbaikinya!
sunting: Anda tidak perlu menurunkan versi studio android Anda!
sumber
PEMBARUAN Sampai hari ini Anda dapat menggunakan
classpath 'io.fabric.tools:gradle:1.28.0'
untuk memperbaiki masalah ini!Jika mengomentari
Crashlytics
pluginio.fabric
pada file gradle aplikasi berfungsi untuk Anda sementara waktuKemudian memutakhirkan dependensi fabric gradle Anda pada file Project gradle akan menyelesaikan masalah secara permanen:
NB: ini tidak menghapus peringatan tetapi membiarkan Anda menggunakan Crashlytics dengan AS3.3 +
sumber
crashlytics
diaktifkan. Jadi untuk menjaga Crashlytics dan tetap mendorong ke prod, Anda dapat menggunakan pembaruan yang disebutkan di atas meskipun masih memicu "peringatan".Tidak yakin apa masalah sebenarnya tetapi mengomentari dependensi terkait crashlytics dari masalah yang diselesaikan proyek.
sumber
Ini dikonfirmasi sebagai bug untuk Crashlytics dan mereka sedang mengusahakannya.
https://issuetracker.google.com/issues/116408637
Dikutip dari penerima tugas Google:
Bagi saya, aplikasi debug saya berfungsi dengan baik pada perangkat saya hanya dengan menjalankan dan mengabaikan peringatan tanpa berkomentar Crashlytics atau Fabric. Saya belum mencoba untuk produksi.
Memperbarui:
Google Issue Tracker telah menandai masalah ini sebagai Won't Fix (Infeasible) karena semua masalah berasal dari Crashlytics, dan biarkan perbaikan dilakukan oleh tim Crashlytics (meskipun mereka adalah Googler yang sama ...).
Mereka menyarankan untuk mengikuti tautan ini untuk pembaruan Crashlytics:
https://github.com/firebase/firebase-android-sdk/issues/198
Catatan: Saya masih menggunakan Android Studio 3.3 dengan io.fabric.tools:gradle:1.26.0 tanpa berkomentar apapun tentang Craslytics dan berfungsi dengan baik di aplikasi debug saya.
Memperbarui:
Saya dapat mengonfirmasi sekarang bahwa itu berfungsi dengan baik pada aplikasi versi produksi / rilis saya. Bagaimana saya tahu ini berfungsi? Karena itu mengirim saya kembali laporan kerusakan -_- '
Bagaimanapun, abaikan saja peringatan itu, mereka harus memperbaikinya akhirnya.
Aww, baca saja bahwa itu sudah diperbaiki dengan fabric 1.28.0 :)
sumber
Berita terbaru dari 01/24/2019
Info di sini https://issuetracker.google.com/issues/116408637
Kita harus menunggu sampai Crashlytics datang dengan solusi, di sini masalah GitHub dibuka
https://github.com/firebase/firebase-android-sdk/issues/198
Satu-satunya cara yang saya gunakan saat ini untuk tidak mengomentari plugin io.fabric adalah menurunkan kelas saya dan meningkatkan classpath kain saya (ini bekerja pada aplikasi produksi saya)
sumber
-dontwarn com.crashlytics.android.Crashlytics
diproguard-rules.pro
Seperti yang dikatakan, masalahnya adalah dengan Fabric / Crashlytics.
Ini adalah bug di sisi Crashlytics / Firebase, silakan periksa tautan berikut dan lihat status bug: https://github.com/firebase/firebase-android-sdk/issues/198
sumber
pelacak masalah mungkin merujuk ke "konfigurasi tugas malas" -
setidaknya itulah yang disarankan untuk menghindari konfigurasi tugas .
tetapi orang mungkin dapat mencegah akses ke metode usang ini
BaseVariantImpl
, ketikavariant.outputs.all
tidak akan mengakses metode itu (secara internal) - atau ketika cek dapat mencegah akses; atau ketika mengakses varian dengan namanya; atau entah bagaimana menonaktifkan tugas membangun bawaan eksternal untuk varian. juga melihat opsi sinkronisasi proyek varian tunggal , yang agaknya terkait.atau menunggu build-tools
3.3.0-alpha12
atau3.3.0-beta1
... ini bahkan bukanrelease candidate
, karena itu menginvestasikan banyak waktu mungkin tidak ada gunanya - kecuali menggunakannya untuk mengajukan laporan bug lain.tombol umpan balik cepat baru masih terlihat paling menjanjikan.
sumber
android.debug.obsoleteApi=true
untuk melihat dari mana asalnya. ada beberapa metode yang diganti namanya, denganProvider
ditambahkan namanya.3.3.0
rilisnya rusak beberapa hal, karena varian API telah berubah. dapat menautkan satu diskusi terbaru: stackoverflow.com/questions/54206898/… (menambahkan ringkasan sebagai jawaban di sana).Bagi saya, saya mengikuti langkah-langkah ini: 1. memutakhirkan ketergantungan Gradle pada build.gradle tingkat proyek.
tambahkan ketergantungan plugin ini di bawah ini, terapkan plugin: 'com.android.application' di tingkat aplikasi build.gradle.
Sinkronkan proyek dengan file gradle.
sumber
Ini terjadi karena pembaruan Android Studio Anda dari Android Studio 3.2.0 ke Android Studio 3.3.0. Perbarui Ketergantungan Gradle Anda (Proyek) dari IO.Fabric. Suka:
dan juga perbarui versi Kotlin Anda ke
Ini akan menyelesaikan masalah ini. Terima kasih
sumber
Build log mencetak cara men-debug ini, khususnya Anda perlu menjalankan build
-Pandroid.debug.obsoleteApi=true
, yang akan mencetak tumpukan-jejak panggilan ke API yang sudah tidak digunakan lagi dan Anda akan dapat mengetahui plugin / kode mana yang memanggilnya.Jika akhirnya menjadi kode Anda - gunakan API Penyedia baru ( baca Lazy Task Configuration doc )
Jika itu berasal dari plugin lain - laporkan kepada mereka dengan stack-trace dan pesan peringatan dan mungkin kirimkan tambalan. Seperti dalam hal ini terkait dengan
io.fabric
masalah.sumber
ini telah diperbaiki dalam rilis terbaru dari plugin Fabric gradle, 1.28.0, yang ditayangkan hari ini. Miliki ini di build.gradle tingkat atas Anda:
sumber
Ketika saya membuka proyek, saya menekan
Run migrations
tombol yang muncul di sudut kanan bawahAndroid Studio
. Migrasi dilakukan dan masalahnya diselesaikan tanpa mengomentariCrashlytics
ketergantungan.sumber
Mengubah kompatibilitas sumber dalam
build.gradle
file modul ke Java 8 memperbaiki masalah iniPastikan untuk membangun kembali proyek setelah menambahkan garis-garis itu
sumber
build.gradle
atau tingkat modul (/ aplikasi)?ini akan memperbaiki kesalahan: Pada bilah tugas klik Tools-> Kotlin-> Configure Kotlin in Project
sumber
Dalam kasus saya, saya perlu menggunakannya
io.fabric
plugin, dan solusinya adalah, memperbarui ke versi terbaru alat-alat kain:sumber
Bagi mereka yang perlu menerapkan plugin Fabric, solusi sementara adalah kembali ke versi gradle sebelumnya di tingkat proyek.
Ubah versi classpath ke
com.android.tools.build:gradle:3.2.1
.sumber
Itu masalah dengan versi dan plugin terbaru
gradle
(dalam kasus saya3.3.2
)Fabric.io
. Sekarang diselesaikan oleh versi baru. Pengguna harus memiliki ini di tingkat atasbuild.gradle
:sumber
Perbaiki adalah memperbarui file build root gradle ke yang terbaru. Dan jawaban ini berlaku sekarang. di fureture lagi perubahan baru akan diterapkan oleh gradle dan android SDK. Kadang-kadang jawaban akan bervariasi pada waktunya.
sumber
pertama-tama ini bukan kesalahan
itu peringatan
dan muncul ketika pembaruan gradle ke 3.3.0 Sering terjadi karena io.fabric maka tunggu hingga pembaruan fabric versi saat ini di mana peringatan masih muncul adalah 'io.fabric.tools:gradle:1.27.1'
sumber