คำเตือน: API 'variant.getJavaCompile ()' ล้าสมัยและถูกแทนที่ด้วย 'variant.getJavaCompileProvider ()'


199

ทันใดเมื่อทำการซิงค์ Gradle ฉันได้รับข้อผิดพลาดนี้:

คำเตือน: API 'variant.getJavaCompile ()' ล้าสมัยและถูกแทนที่ด้วย 'variant.getJavaCompileProvider ()' มันจะถูกลบออกในตอนท้ายของ 2019 สำหรับข้อมูลเพิ่มเติมดูhttps://d.android.com/r/tools/task-configuration-avoidance โมดูลที่ได้รับผลกระทบ: แอป

ฉันได้รับสิ่งนี้build.gradleสำหรับโมดูลแอป:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'

apply plugin: 'io.fabric'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.2"
    defaultConfig {
        applicationId "..."
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "..."
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        versionNameSuffix = version_suffix

        [...]
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

            [...]
        }
        debug {
            [...]
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.61"
    implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation "com.android.support:preference-v7:28.0.0"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
    implementation 'com.google.android.material:material:1.0.0-rc02'

    [...]
}

ฉันสามารถรวบรวมแอปได้อย่างถูกต้อง แต่มันค่อนข้างน่ารำคาญและเมื่อฉันเห็นมันมีบางอย่างจะหยุดทำงานในปลายปี 2562 ความคิดใด ๆ เกี่ยวกับมันและวิธีแก้ปัญหาคืออะไร


เช่นเดียวกับ nit-pick เล็กน้อยคำเตือนไม่ใช่ข้อผิดพลาด แม้จะมีคำเตือนรหัสของคุณควรรวบรวมในลักษณะเดียวกันในขณะที่ข้อผิดพลาดจะทำให้งานสร้างของคุณล้มเหลว เป็นเพียงการบอกกล่าวขั้นสูงว่าวิธีการทำสิ่งต่าง ๆ ในปัจจุบันอาจไม่สามารถใช้งานได้ในอนาคตและอาจจะได้รับการแก้ไขด้วยการอัปเดตปลั๊กอิน คุณใช้เวลาในการอ่านหน้าที่เชื่อมโยงกับข้อผิดพลาดหรือไม่?
Michael Dodd

2
ความรู้สึกส่วนตัวของฉันคือมันเกิดจากปลั๊กอินที่ยังไม่ได้รับการปรับปรุงให้ใช้ Gradle API ใหม่ซึ่งควรแก้ไขได้ทันเวลา
Michael Dodd


ลองสิ่งนี้ stackoverflow.com/a/55193824/3806413
0xAliHn

คำตอบ:


81

ปัญหานี้ได้รับการแก้ไขแล้วในตอนนี้ด้วยการอัพเดท Fabric Gradle เวอร์ชั่น 1.30.0:

การปรับปรุงที่วางจำหน่าย: 19 มีนาคม 2019

โปรดดูลิงค์นี้: https://docs.fabric.io/android/changelog.html#march-15-2019

โปรดอัปเดต classpath ของคุณในระดับโครงการ Gradle:

buildscript {
    // ... repositories, etc. ...

    dependencies {
        // ...other dependencies ...
        classpath 'io.fabric.tools:gradle:1.30.0'
    }
}

2
นี่เป็นคำตอบที่ถูกต้องวิธีง่ายๆในการแก้ไขปัญหาที่ต้องเผชิญ
M.Noman

5
classpath 'io.fabric.tools:gradle:1.29.0'ฉันมีตอนนี้ ฉันควรทำอย่างไรดี?
Faizan Mubasher

7
@FaizanMubasher ลองปรับลดบริการ google ของคุณเป็น 4.2
ลูปไม่มีที่สิ้นสุด

4
@InfiniteLoops ข้อเสนอแนะในการปรับลดรุ่น 4.2 ดูเหมือนว่าจะใช้งานได้
HondaGuy

1
อัพเกรดผ้าเป็น 1.31.0 & ลดระดับบริการของ Google เป็น 4.2.0 แก้ไขแล้ว
Mukeshkumar S

94

ฉันประสบปัญหานี้หลังจากอัปเดตเป็น 3.3.0

หากคุณไม่ได้ทำสิ่งที่ระบุข้อผิดพลาดในไฟล์ gradle มันเป็นปลั๊กอินบางอย่างที่ยังไม่ได้อัปเดตเป็น API ใหม่ที่เป็นสาเหตุ หากต้องการทราบว่าปลั๊กอินตัวใดทำดังต่อไปนี้ (ดังอธิบายไว้ใน"ข้อมูลการดีบักที่ดีขึ้นเมื่อใช้ API ล้าสมัย" ของการประกาศ 3.3.0 ):

  • เพิ่ม'android.debug.obsoleteApi = true'ในไฟล์gradle.propertiesซึ่งจะบันทึกข้อผิดพลาดพร้อมรายละเอียดเพิ่มเติม
  • ลองอีกครั้งและอ่านรายละเอียดบันทึก จะมีร่องรอยของปลั๊กอิน "ที่มีปัญหา"
  • เมื่อคุณระบุให้ลองปิดการใช้งานและดูว่าปัญหาหายไปเพียงเพื่อให้แน่ใจ
  • ไปที่หน้า GitHub ของปลั๊กอินและสร้างปัญหาซึ่งจะมีบันทึกรายละเอียดและคำอธิบายที่ชัดเจนดังนั้นคุณจึงช่วยให้นักพัฒนาแก้ไขมันสำหรับทุกคนได้เร็วขึ้น
  • อดทนในขณะที่พวกเขาแก้ไขหรือคุณแก้ไขและสร้าง PR สำหรับ devs

หวังว่าจะช่วยผู้อื่น


4
นี่เป็นคำตอบทั่วไปที่มีประโยชน์ที่สุดในความคิดของฉัน ในกรณีของฉันคำเตือนนี้ถูกปล่อยออกมาเนื่องจากการใช้งานปลั๊กอิน Groovy-Android (สำหรับการทดสอบ Spock)
AutonomousApps

2
นี่คือคำตอบที่ถูกต้อง ใครเป็นผู้อัปเดตการอัพเดทเวอร์ชั่น gradle
ท่าเรือ Betos

มันใช้งานได้สำหรับฉันมีเรื่องใหม่บ้างหรือไม่? ในขณะเดียวกันเราก็ไม่ควรทำอย่างนั้นใช่ไหม?
Billyjoker

1
มีประโยชน์จริงๆ ในกรณีของฉันมันเป็นปลั๊กอินของ Hugo
AlvaroSantisteban

6
หลังจากเพิ่มไปandroid.debug.obsoleteApi=trueแล้วหากต้องการอ่านรายละเอียดที่บันทึกไว้: ไปที่แท็บสร้างที่ด้านล่างและภายในหน้าต่าง "สร้างผลลัพธ์" คลิก "สลับมุมมอง" WARNING: API 'variant.getAssemble()' is obsoleteเมื่อคุณคลิกที่สวยสีหายไปเลื่อนไปด้านบนที่มันว่า จากนั้นด้านล่างจะแสดงREASON: Called from: ... ในกรณีของฉันมันเกิดจากmedium.com/@xabaras/ ...
คนอยู่ที่ไหนสักแห่ง

62

ในกรณีของฉันมันเกิดจากบริการ gms 4.3.0 ดังนั้นฉันต้องเปลี่ยนเป็น:

com.google.gms:google-services:4.2.0

ฉันได้พบสิ่งนี้ด้วยการวิ่ง:

gradlew sync -Pandroid.debug.obsoleteApi=true

ในอาคารผู้โดยสาร ไปที่ดู -> windows tool -> Terminal ใน Android Studio


ใน Ubuntu ไม่สามารถเรียกใช้คำสั่งนี้ว่าฉันสามารถทำได้ในอูบุนตู ขอให้ติดตั้งแพคเกจและฉันติดตั้งแพคเกจนั้นก็ยังไม่สามารถเรียกใช้ได้ มีวิธีอื่น ๆ?
Vasudev Vyas

3
ฉันเพิ่งเปลี่ยนบริการ Google gms เป็น 4.2 และคำเตือนหายไปขอบคุณ
ลูปไม่มีที่สิ้นสุด

2
@VasudevVyas ถ้าใน android Studio เพียงเพิ่ม./ก่อนคำสั่งนั่นคือถ้าเทอร์มินัลถูกตั้งค่าเป็นรูทของโปรเจค android ของคุณ มิฉะนั้นคุณจะต้องซีดีไปที่รูทของโครงการ
Racu

3
ทำไมฉันจึงต้องลดระดับการพึ่งพาบริการ Google มันไม่ใช่ทางออก
Ahamadullah Saikat

4
@AhamadullahSaikat นี้อาจจะได้รับการแก้ไขในรุ่นอนาคต จากนั้นคุณสามารถอัพเกรดได้อีกครั้ง นี่เป็นวิธีแก้ปัญหาจนกว่าจะแก้ไขโดย Google
Numan Karaaslan

34

นี่เป็นเพียงคำเตือนและอาจจะได้รับการแก้ไขก่อนปี 2019 ด้วยการอัปเดตปลั๊กอินดังนั้นไม่ต้องกังวลกับมัน ฉันอยากจะแนะนำให้คุณใช้ปลั๊กอินและ gradle เวอร์ชั่นที่เข้ากันได้

คุณสามารถตรวจสอบรุ่นปลั๊กอินและรุ่น gradle ของคุณได้ที่นี่เพื่อประสบการณ์และประสิทธิภาพที่ดียิ่งขึ้น

https://developer.android.com/studio/releases/gradle-plugin

ลองใช้รุ่นที่เสถียรเพื่อรับรหัสที่ราบรื่นและเตือน / ผิดพลาด


24
จริงๆแล้วมันร้ายกาจยิ่งกว่าคำเตือนเพียงอย่างเดียว - มันมีผลกระทบกับตัวแก้ไขโค้ดและป้องกันไม่ให้คุณค้นหาการอ้างอิงถึงคลาส
IgorGanapolsky

นี่ไม่เพียง แต่ในรุ่น dev / canary เท่านั้น แต่ยังมีความเสถียรเกิดขึ้นเช่นกัน แต่ฉันคิดว่าเป็นคำเตือนว่าการอัปเดตที่ใหม่กว่าจะได้รับการแก้ไข
Marlon López

1
@HarshilShah ไม่มีการรับประกันว่าปลั๊กอินที่เป็นปัญหาจะได้รับการอัปเดต นักพัฒนาอาจไม่เคยรู้เกี่ยวกับปัญหา เนื่องจากสิ่งที่ดีที่สุดที่เราสามารถทำได้คือ: stackoverflow.com/a/54213973/304270
Ewoks

25

ฉันยังต้องเผชิญกับปัญหาเดียวกัน หลังจากค้นหาไปสักพักฉันก็พบว่าคำเตือนเกิดขึ้นเนื่องจากการใช้งานgoogle-servicesปลั๊กอินเวอร์ชันล่าสุด (เวอร์ชั่น 4.3.0) ฉันใช้ปลั๊กอินนี้สำหรับฟังก์ชัน Firebase ในแอปพลิเคชันของฉัน ทั้งหมดที่ฉันทำคือการลดระดับgoogle-servicesปลั๊กอินของฉันใน buildscript ในไฟล์ระดับ build.gradle (โครงการ) ดังนี้:

buildscript{
    dependencies {
       // From =>
       classpath 'com.google.gms:google-services:4.3.0'
       // To =>
       classpath 'com.google.gms:google-services:4.2.0'
    }
}

1
ฉันทำวิธีนี้และข้อผิดพลาดก็หายไป ขอขอบคุณ
wesley

1
ทำงาน! ขอบคุณ
Сергей

3
ฉันอัพเกรดเป็น 4.3.2 โดยไม่มีการเตือนนี้กลับมา
tagy22

10

เปลี่ยนรุ่น Google Services ของคุณจากbuild.gradle:

dependencies {
  classpath 'com.google.gms:google-services:4.2.0'
}

1
ฉันใช้ 4.3.0 และยังมีปัญหาอยู่
wesley

@ wesleyfranks เดียวกัน แต่ถ้าฉันเปลี่ยนเป็น 4.2.0 ฉันจะไม่มีปัญหาอีกต่อไป ...
35499

ฉันใช้เวลา 4.3.1 และยังมีปัญหาอยู่
pvalle

8

นี่คือคำเตือนคายออกมาโดยเครื่องมือสร้างด้วยเหตุผลสองประการ
1. ปลั๊กอินตัวหนึ่งใช้งานแทน TaskProvider ไม่มีอะไรที่เราสามารถทำได้
2. คุณกำหนดค่าการใช้งานตามที่รองรับ TaskProvider

WARNING: API 'variant.getGenerateBuildConfig()' is obsolete and has been replaced with 'variant.getGenerateBuildConfigProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance

WARNING: API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance

WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance

มองหาตัวอย่างข้อมูลด้านล่างและอัพเดท

android {
    <library|application>Variants.all { variant ->
        /* Disable Generating Build config */
        // variant.generateBuildConfig.enabled = true // <- Deprecated
        variant.generateBuildConfigProvider.configure {
            it.enabled = true // Replacement
        }
    }
}

ในทำนองเดียวกันพบว่าประเพณี'variant.getJavaCompile()'หรือ'variant.javaCompile', หรือ'variant.getMergeResources()' 'variant.mergeResources'แทนที่ตามข้างต้น

ข้อมูลเพิ่มเติมที่การหลีกเลี่ยงการกำหนดค่างาน


1
สิ่งนี้เกิดขึ้นในทุกโครงการของ Android Studio ไม่มีส่วนเกี่ยวข้องกับตัวอย่างที่คุณพูดถึง ...
IgorGanapolsky

2
@IgorGanapolsky มันจะเกิดขึ้นใน terminal เช่นกัน ./gradlewลองดำเนินการ สิ่งนี้ไม่เกี่ยวข้องกับ AS มันอยู่ในเครื่องมือสร้าง อัพเกรด / ลดประมาณการและดำเนินการcom.android.tools.build:gradle:3.2.0 ./gradlewสิ่งนี้จะไม่มา
VenomVendor

ไม่พบvariant.generateBuildConfig.enabledในโครงการของฉัน ฉันยังได้รับคำเตือนข้างต้น
kbsbng

ไม่พบvariant.generateBuildConfig.enabledในโครงการของฉัน ฉันยังได้รับคำเตือนข้างต้น
kbsbng

@VenomVendor นี่เป็นคำตอบที่มีประโยชน์ที่สุดตามปัญหาของฉันคุณยังสามารถช่วยในเรื่องรหัสนี้ได้หรือไม่? codeshare.io/G6ogzk
Raghav Satyadev

5

การลดรุ่น Gradle ทำงานให้ฉัน:

classpath 'com.android.tools.build:gradle:3.2.0'

4
การลดระดับไม่มีทางเลือก
Roshana Pitigala

นี่คือคำตอบที่ฉันต้องการขอขอบคุณ!
anKotliner

การลดระดับเป็นสิ่งที่ดีในบางสถานการณ์
martinseal1987

5

1) เพิ่มที่คุณandroid.debug.obsoleteApi=true gradle.propertiesมันจะแสดงให้คุณเห็นว่าโมดูลใดได้รับผลกระทบจากบันทึกเตือนของคุณ

2) อัปเดตฟังก์ชั่นที่เลิกใช้แล้วเหล่านี้

  • variant.javaCompile ถึง variant.javaCompileProvider

  • variant.javaCompile.destinationDir ถึง variant.javaCompileProvider.get().destinationDir


5

อัพเกรดKotlin ( ปลั๊กอินและSTDLIB ) รุ่นที่จะ 1.3.1แก้ไขคำเตือนว่าในกรณีของฉัน อัปเดตเวอร์ชั่น Kotlin ในโครงการทั้งหมดโดยแทนที่รุ่น Kotlin ที่มีอยู่ด้วย:

ext.kotlin_version = '1.3.50'

ext.kotlin_version = '1.3.10' หรือ '1.3.50'
Pushkin

นี่คือปัญหาของฉัน ก่อนหน้านี้ext.kotlin_version = '1.2.71'.. เปลี่ยนเป็นคำตอบข้างต้นและทำงานได้ดี! - ฉันลบ/androidและ/iosโฟลเดอร์ของฉันแล้ววิ่งflutter create .ไปสร้างแอพพลิเคชั่น Flutter ใหม่และวางไว้ext.kotlin_version = '1.2.71'ในของฉันbuild.gradle
MaylorTaylor

4

กลับไปจาก classpath 'com.android.tools.build:gradle:3.3.0-alpha13' เป็น classpath 'com.android.tools.build:gradle:3.2.0'

สิ่งนี้ใช้ได้สำหรับฉัน


6
นั่นเป็นเพียงวิธีแก้ปัญหาชั่วคราวที่ทำให้คุณไม่สามารถอยู่ได้ตลอดไปบน 3.2.0 โดยเฉพาะเมื่อสุดท้าย 3.3.0 หมดไปแล้ว
Ewoks

ปรับลดรุ่น gradle ไม่ใช่ตัวเลือก! .
Jorgesys

4

อัปเดตปลั๊กอินผ้าเป็นไฟล์ล่าสุดในระดับโครงการ Gradle (ไม่ใช่ระดับแอป) ในกรณีของฉันบรรทัดนี้แก้ปัญหาได้

classpath 'io.fabric.tools:gradle:1.25.4'

ถึง

classpath 'io.fabric.tools:gradle:1.29.0'

3

ในกรณีของฉัน

build.gradle(Project)

เป็น

ext.kotlin_version = '1.2.71'

อัปเดตเป็น

ext.kotlin_version = '1.3.0'

ปัญหาดูไปแล้ว


2

ในกรณีของฉันฉันต้องแสดงความคิดเห็นcom.google.firebase.firebase-crashปลั๊กอิน:

apply plugin: 'com.android.application'
// apply plugin: 'com.google.firebase.firebase-crash' <== this plugin causes the error

มันเป็นข้อผิดพลาดตั้งแต่ Android Studio 3.3.0


2
สำหรับฉันมันเกิดขึ้นเพราะฉันกำลังใช้อยู่oss-licenses-plugin
มิคาอิล

2

กำลังอัปเดต gradle เป็นgradle: 3.3.0

ภารกิจ 'รวบรวม' เริ่มต้นจะใช้กับตัวแปรปกติเท่านั้น เพิ่มชุดการทดสอบเช่นกัน

android.testVariants.all { variant ->
    tasks.getByName('assemble').dependsOn variant.getAssembleProvider()
}

ยังแสดงความคิดเห็นใช้ผ้า

//apply plugin: 'io.fabric'

1
ตัวแปร "ปกติ" คืออะไร android.testVariants.all คืออะไรรหัส {... } สำหรับ (จุดประสงค์ของมันคืออะไร)? ข้อความที่ยกมานี้มาจากไหน? คุณช่วยอัพเดทคำตอบได้ไหม?
Ewoks

ฉันเปลี่ยนเส้นทาง Manifest สำหรับ chrashlytics crashlytics { manifestPath = "$buildDir/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml" }
ANRI

1
@Ewoks ชุดตัวเลือกปกติคือชุดตัวเลือกสร้าง (ดีบัก / รีลีส) โดยใช้ชุดของกฎเฉพาะคุณสามารถตั้งค่าชุดตัวเลือก (รสชาติ) ที่แตกต่างกันมากมาย .. นอกจากนี้คุณสามารถสร้างชุดแหล่งทดสอบที่เป้าหมายชุดสร้างเฉพาะ
Moskov

ฉันรู้เกี่ยวกับรสชาติ แต่ไม่แน่ใจว่าสิ่งนี้เกี่ยวข้องกับเรื่องนี้อย่างไรและเกี่ยวข้องอย่างไร นั่นเป็นเหตุผลที่ฉันถามว่าคุณสามารถปรับปรุงคำตอบโดยการชี้แจงแหล่งที่มาที่คุณอ้างและแก้ไขการจัดรูปแบบ (เดาว่าคุณจัดรูปแบบของรหัสที่มีความคิดเห็นผสม)
Ewoks

1
ไม่มีการรับประกันว่าเนื้อผ้าเป็นสาเหตุของปัญหา แต่อย่างใด ที่จริงแล้วด้วย "การแก้ปัญหา" นี้เราไม่มีเงื่อนงำที่เป็นปัญหา นอกจากนี้ยังไม่มีคำอธิบายว่าทำไมต้องทำอะไรกับ testVariants และเกี่ยวข้องกันอย่างไร?!? นั่นเป็นเหตุผลที่คำตอบดั้งเดิมของ @KrsteMoskov ทำให้เข้าใจผิดและนำไปใช้กับกรณีการใช้งานเฉพาะถ้ามันแก้อะไรเลย เพื่อช่วยให้คุณได้รับ "บนกระดาน" ฉันจัดรูปแบบคำตอบของคุณอย่างถูกต้องและทิ้งเนื้อหาตามที่คุณเขียนไว้เพื่อให้ผู้อื่นสามารถตัดสินใจได้ว่าสิ่งนี้มีประโยชน์สำหรับพวกเขา
Ewoks

2

เมื่อปลั๊กอินตรวจพบว่าคุณกำลังใช้ API ที่ไม่ได้รับการสนับสนุนอีกต่อไปตอนนี้จะสามารถให้ข้อมูลที่มีรายละเอียดมากขึ้นเพื่อช่วยคุณกำหนดตำแหน่งที่จะใช้ API นั้น หากต้องการดูข้อมูลเพิ่มเติมคุณต้องรวมสิ่งต่อไปนี้ในไฟล์ gradle.properties ของโครงการของคุณ:

android.debug.obsoleteApi=true

โดยที่ build, gradle หรือ app.gradle
Jithish PN

เพียงค้นหาไฟล์ gradle.properties ในโครงการของคุณ
Hamed safari

2

ถ้าฉันลบแถวนี้ออกจากapplication gradle:

apply plugin: 'io.fabric'

ข้อผิดพลาดจะไม่ปรากฏอีกต่อไป

ลิงค์อ้างอิง github


1
อย่าทำเช่นนี้มิฉะนั้น Crashlytics จะหยุดทำงาน นี่เป็นเพียงการซ่อนปัญหา
Roger Oba

2

โอนย้ายโครงการของคุณเป็น androidX

การพึ่งพาถูกอัพเกรดเป็น androidX ดังนั้นหากคุณต้องการใช้เนื้อหา androidX โอนย้ายโครงการของคุณเป็น androidX

ด้วย Android Studio 3.2 และสูงกว่าคุณสามารถโยกย้ายโครงการที่มีอยู่เพื่อใช้ AndroidX ได้อย่างรวดเร็วโดยเลือก Refactor> โยกย้ายไปยัง AndroidX จากแถบเมนู

การลดระดับการพึ่งพาอาจแก้ไขปัญหาของคุณในเวลานี้ - แต่ไม่แนะนำ


1
ฉันมี AndroidX และฉันยังคงได้รับข้อความ
Jorgesys

1

สิ่งนี้แก้ไขปัญหาของฉัน .. สิ่งที่ฉันต้องทำคือลดระดับปลั๊กอิน google-services ใน buildscript ในไฟล์ระดับ build.gradle (โครงการ) ดังนี้

buildscript{
     dependencies {
        // From =>
        classpath 'com.google.gms:google-services:4.3.0'
        // To =>
        classpath 'com.google.gms:google-services:4.2.0'
        // Add dependency
        classpath 'io.fabric.tools:gradle:1.28.1'
    }
}

0

นี่เป็นการแก้ปัญหาชั่วคราวหากคุณใช้ห้องเพียงอัพเกรดเป็น 1.1.0 หรือสูงกว่า

implementation "android.arch.persistence.room:runtime:1.1.0"

มันลบคำเตือนนี้สำหรับฉัน


ใช่เมื่อฉันอัปเดตเวอร์ชันคำเตือนเหล่านี้จะหายไป
Sergio KS

0

ช่วยให้คุณ Project (ไม่ใช่แอพ) Build.gradle พึ่งพารหัสรุ่น classpath เป็นของใหม่

 dependencies {
    classpath 'com.android.tools.build:gradle:3.5.0-beta01'
    classpath 'com.novoda:bintray-release:0.8.1'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

0

นี่เป็นคำถามยอดนิยม หากคุณไม่ใช้วิธีการเหล่านี้โซลูชันกำลังอัปเดตไลบรารี โปรดอัปเดตของคุณรุ่น Kotlinและทุกการอ้างอิงของคุณเช่นผ้า , protobufฯลฯ หากคุณมั่นใจว่าคุณมีการปรับปรุงทุกอย่างลองถามผู้เขียนของห้องสมุด


0

การอัพเกรด protobuf-gradle-plugin เป็นรุ่น 0.8.10 แก้ปัญหาของฉันได้ แทนที่ protobuf ปัจจุบันของคุณด้วย

classpath 'gradle.plugin.com.google.protobuf:protobuf-gradle-plugin:0.8.10'

0

ส่วนใหญ่เป็นเพราะห้องสมุดที่ล้าสมัย หากต้องการตรวจสอบการอัปเดตใหม่ด้วยตนเองคุณควรไปที่

วิเคราะห์> "เรียกใช้การตรวจสอบตามชื่อ"

เรียกใช้การตรวจสอบโดยใช้ชื่อผล android

นั่นควรจะเพียงพอ อีกตัวเลือกหนึ่งคือการเรียกใช้การอัพเดท gradle พึ่งพา

./gradlew dependencyUpdates

ที่จะสร้างรายงานเช่นนี้:

:dependencyUpdates

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.ben-manes:gradle-versions-plugin:0.15.0

The following dependencies have later milestone versions:
 - com.google.auto.value:auto-value [1.4 -> 1.4.1]
 - com.google.errorprone:error_prone_core [2.0.19 -> 2.0.21]
 - com.google.guava:guava [21.0 -> 23.0-rc1]
 - net.ltgt.gradle:gradle-apt-plugin [0.9 -> 0.10]
 - net.ltgt.gradle:gradle-errorprone-plugin [0.0.10 -> 0.0.11]

...

0

การอัพเกรดบริการ google ในระดับโครงการbuild.gradleแก้ปัญหาของฉันได้

หลังจากอัปเกรดแล้ว:

dependencies {
    ...
    classpath 'com.google.gms:google-services:4.3.2'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

0

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยการกำหนดรุ่นปลั๊กอิน kotlin gradle ในไฟล์ build.gradle

เปลี่ยนสิ่งนี้

 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

ถึง

 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50{or latest version}"

0

ในกรณีของผมทำตามนี้ ข้อมูลสรุปในระดับแอป gradle: เปลี่ยนสิ่งนี้:

variant.outputs.all { output ->
    variant.assemble.doLast {
        ....
    }
}

ถึง

variant.outputs.all { output ->
variant.getAssembleProvider().configure() {
    it.doLast { 
        ....
    }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.