วิธีการตรวจสอบว่าการพึ่งพา gradle มีรุ่นใหม่


232

ใน Android Studio เมื่อฉันใช้+หมายเลขเวอร์ชัน (เช่นcom.android.support:recyclerview-v7:21.+ ) ฉันได้รับคำเตือน "หลีกเลี่ยงการใช้ + ในหมายเลขเวอร์ชั่น" เมื่อฉันใช้หมายเลขรุ่นเฉพาะฉันไม่สามารถใช้รุ่นล่าสุดได้เสมอ ฉันมีการพึ่งพามากในโครงการของฉัน ฉันจะตรวจสอบว่าการพึ่งพามีรุ่นที่ใหม่กว่าได้อย่างไร มีปลั๊กอินของ Android Studio หรือไม่เช่นนั้นเพื่อแจ้งให้ฉันทราบเมื่อมีการพึ่งพาเวอร์ชันที่ใหม่กว่า

แก้ไข: สตูดิโอ Android เน้นห้องสมุดสนับสนุน android ที่ล้าสมัยและบริการ Google Play แต่นี่ไม่สามารถใช้ได้สำหรับห้องสมุดที่กำหนดเองอื่น ๆ

ป้อนคำอธิบายรูปภาพที่นี่


สำหรับนักพัฒนาที่กำลังอัปเดตไลบรารีโปรดดู: วิธีอัปเดตไลบรารีสำหรับเวอร์ชันใหม่ใน Bintray ได้อย่างไร
Suragch

2
อย่างน้อยใน Android 3.0 การอัปเดตสำหรับไลบรารีที่กำหนดเองจะแสดงการแจ้งเตือนแบบเดียวกับที่คุณมีในภาพคำถามของคุณสำหรับไลบรารีการสนับสนุน
Suragch

@Suragch มันใช้งานไม่ได้สำหรับการอ้างอิงบางอย่างสำหรับฉันใน android studio 3.0.1
Rémy

เราสามารถใช้gradleplease.appspot.comเพื่อตรวจสอบเวอร์ชันไลบรารี่ใหม่
Alex Kisel

คำตอบ:


187

ตอนนี้มีอยู่แล้วใน Android Studio เป็นแบบ Lint check คุณสามารถเปิดใช้งานได้ที่นี่:

การตั้งค่า> เครื่องมือแก้ไข> การตรวจสอบ> "มีเวอร์ชันไลบรารีที่ใหม่กว่า"

คำอธิบายสำหรับการตรวจสอบนี้:

มีไลบรารีเวอร์ชันที่ใหม่กว่า

เครื่องตรวจจับนี้จะตรวจสอบกับที่เก็บส่วนกลางเพื่อดูว่ามีรุ่นที่ใหม่กว่าสำหรับการอ้างอิงที่ใช้โดยโครงการนี้หรือไม่ นี้จะคล้ายกับการตรวจสอบ GradleDependency ซึ่งการตรวจสอบสำหรับรุ่นใหม่ที่มีอยู่ในเครื่องมือ Android SDK และห้องสมุด แต่งานนี้กับการพึ่งพา MavenCentral และเชื่อมต่อไปยังห้องสมุดทุกครั้งซึ่งทำให้มันมีความยืดหยุ่นมากขึ้น แต่ยังมากช้าลง

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

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

จากนั้นค้นหา "มีไลบรารีเวอร์ชันที่ใหม่กว่าพร้อมใช้งาน" และรันบนโมดูลของคุณ

แก้ไข : ข้างต้นควรทำงานเป็นของ Android Studio 2.3 หากคุณใช้เวอร์ชั่นเก่า (คุณควรอัพเดต) สิ่งต่อไปนี้อาจช่วยได้:

โปรดทราบว่าดูเหมือนว่าคุณต้องเปิดใช้งานการตรวจสอบเพื่อที่จะเรียกใช้ด้วยตนเอง - ดังนั้น (ตั้งแต่ Android Studio 2.0 Beta 2) คุณต้องค้นหาการตรวจสอบในการตั้งค่าเปิดใช้งานแล้วเรียกใช้ด้วยชื่อจากนั้นปิดใช้งานอีกครั้ง เพื่อฟื้นประสิทธิภาพการทำงานก่อนหน้า)


4
ฉันไม่รู้ว่าฉันกำลังทำอะไรผิดหรือเปล่า แต่นั่นก็ไม่ได้ผลสำหรับฉัน
osrl

1
ใช่เหมือนกันสำหรับฉันอาณาจักรไม่ได้อยู่ใน MavenCentral ชุดติดตั้งเพิ่มเติมของคุณมีการกำหนดเช่นนี้หรือไม่? ของฉันคือและมันก็ไม่สามารถหาได้เช่นกัน def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
osrl

1
ด้วยสตริงรุ่นที่กำหนดไม่สามารถค้นหาได้ com.squareup.okhttp:okhttp:2.7.2มันก็สามารถที่จะหา นอกจากนี้ใน2.0.0-beta4
osrl

2
สิ่งนี้แสดงการอัพเดตที่มีอยู่ในแท็บ "การตรวจสอบ" แต่ไม่ได้ไฮไลต์เป็นการเตือนใน build.gradle ฉันยังหาวิธีแก้ปัญหาที่ไม่ได้
Tiago

3
ต้องกลับมาที่คำตอบนี้เพื่อรายงานว่าใช้ได้กับการอ้างอิง MavenCentral เท่านั้น ซึ่งหมายความว่าที่เก็บจาก Jitpack หรือแหล่งข้อมูลอื่นไม่ได้รับการอัพเดตโดยอัตโนมัติ วิธีที่ถูกต้องในการรับการอ้างอิงทั้งหมดล่าสุดคือคำตอบนี้ [ stackoverflow.com/questions/28538824/… (ที่นี่)
Ray Li

274

อัปเดต (05/23/18):

Android Studio เวอร์ชันที่ใหม่กว่าไม่แสดงการอัปเดตเวอร์ชันในกล่องโต้ตอบโครงสร้างโครงการ คำตอบของอดัมนั้นเป็นคำตอบที่ถูกต้องสำหรับ Android Studio 3+

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

จากนั้นค้นหา " Newer Library Versions Available"

วิธีก่อนหน้า:

ในตอนAndroid Studio 2.2นี้Project Structureกล่องโต้ตอบใหม่จะแสดงรายการการพึ่งพาที่แอปของคุณใช้กับการอัปเดตที่มีอยู่จากที่เก็บในท้องถิ่นและระยะไกลเช่นกัน

  • เปิดใช้งานได้โดยไปที่Android Studio > Settings > Build, Execution, Deployment > Gradle > ExperimentalและตรวจสอบUse new Project Structure dialog (ขอบคุณ @jessehensold)
  • จากนั้นเปิดมันโดยไปที่ File > Project Structure > Messages

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับ Android Studio เวอร์ชันเก่าดูคำตอบอื่น ๆ ด้านล่าง


1
เกี่ยวกับการแก้ไข; มันเกี่ยวกับ android-studio เพราะฉันกำลังมองหาปลั๊กอิน Android Studio ขอบคุณสำหรับคำตอบ แต่ฉันเห็นแล้ว
osrl

11
นี่ไม่ได้อยู่ใน Android Studio อีกต่อไป (ใช้เบต้า 2)
กอนซาโล่

8
ฉันต้องเข้าสู่การตั้งค่า> สร้างการดำเนินการปรับใช้> Gradle> ทดลองและตรวจสอบ 'ใช้โครงสร้างโครงการใหม่โต้ตอบ'
jessehensold

1
ต้องไปที่แท็บ "การพึ่งพา" เพื่อเปิดใช้งานปุ่ม "นำไปใช้" ข้อบกพร่องบางอย่าง?
Mateusz Kaflowski

2
ฉันลองสิ่งนี้กับ Android Studio 2.3 แต่Dependenciesแท็บของProject Structureกล่องโต้ตอบไม่พบการพึ่งพาของโครงการ
jakub.g

58

นอกเหนือจากฟีเจอร์ในตัวของ Android Studio แล้วยังมีตัวเสริมgradle ที่เรียกว่าตัวเสริมGradle Versionที่ทำในสิ่งที่คุณต้องการด้วยข้อดีของการเป็นส่วนขยายแบบธรรมดาที่ไม่ต้องผูกติดกับ IDE เฉพาะดังนั้นจึงมีประโยชน์สำหรับโครงการใด ๆ

ปลั๊กอินรุ่น Gradle สามารถสร้างรายงานในรูปแบบข้อความธรรมดาที่มนุษย์สามารถอ่านได้ แต่ยังทิ้งมันเป็น JSON หรือ XML สำหรับการประมวลผลอัตโนมัติ

เมื่อเพิ่มในไฟล์ gradle ของคุณแล้วการใช้มาตรฐานจะมีลักษณะดังนี้:

> ./gradlew dependencyUpdates

สิ่งนี้จะสร้างรายงานการพึ่งพาโครงการที่มีลักษณะดังนี้:

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

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.android.databinding:adapters:1.3.1
 - com.joanzapata.iconify:android-iconify-entypo:2.2.2
 - com.joanzapata.iconify:android-iconify-fontawesome:2.2.2
 - com.webnetmobile.tools:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

ดูเอกสารสำหรับตัวอย่างการใช้งานที่กว้างขวาง


หมายเหตุ:ขณะที่เขียนคำตอบนี้ (2017-01) รุ่นที่สูงกว่า 0.17.0 จะให้ผลผลิตมากกว่าในรูปแบบข้อความแผนรวม URL โปรเจ็กต์จึงทำให้เอาต์พุตทั้งหมดพองตัว หากคุณตามที่ฉันพบว่าไร้ประโยชน์อย่างใดอย่างหนึ่งติดกับรุ่น 0.17.0 หรือใช้รุ่นที่มีปัญหานี้แก้ไขได้ใน anybway (ถ้ารุ่นดังกล่าวมีอยู่;)


3
! น่ากลัว มาที่นี่เพื่อค้นหาสิ่งนี้สำหรับโครงการ Java ปกติ วิธีแก้ปัญหาทั่วไปที่ดีโดยไม่มีความเฉพาะเจาะจงของ Android ของ Lint
TWiStErRob

ฉันได้รับข้อผิดพลาดConfiguration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.เมื่อดำเนินการนี้
ผลไม้

กรอกรายงานข้อผิดพลาดที่นี่: github.com/ben-manes/gradle-versions-plugin/issues
Marcin Orlowski

2
วิธีการ "รุ่นใหม่กว่าห้องสมุดพร้อมใช้งาน" ไม่ทำงาน แต่วิธีนี้สมบูรณ์แบบ! (ฉันใช้ไฟล์ gradle หลายไฟล์พร้อมตัวแปรสำหรับเวอร์ชัน lib)
norbDEV

คุณสามารถเพิ่มรูปภาพของปลั๊กอินนั้นได้หรือไม่? ฉันไม่พบมันในรายการ
CoolMind

14

เลิก - ดูคำตอบที่ยอมรับสำหรับวิธีที่ทันสมัย

เครื่องมือที่ฉันนำเสนอด้านล่างไม่ทำงานบน Android Studio / Gradle เวอร์ชันใหม่และผู้แต่งไม่ได้ดูแลรักษา ( ตั้งแต่วันที่ 30/10/2016 ) ดังนั้นควรใช้วิธีแก้ปัญหาที่แสดงในคำตอบที่ยอมรับเว้นแต่ว่าจะทำงานกับ Android Studio เวอร์ชันเก่า


ตั้งแต่เดือนมกราคม 2559 มีปลั๊กอินสำหรับ Android Studio ที่ทำสิ่งที่คล้ายกันเรียกว่าDependencies Version Checkerและมีแหล่งข้อมูลใดบ้างที่สามารถพบได้ในGitHub GitHub

สามารถเพิ่มผ่านอินเทอร์เฟซในตัว (การตั้งค่า> ปลั๊กอิน> เรียกดูที่เก็บ ... ):

สิ่งที่ดูเหมือนภายในอินเทอร์เฟซดั้งเดิม

หลังจากการติดตั้งและรีสตาร์ทแท็บต่อไปนี้จะปรากฏขึ้นใน UI:

แท็บ UI ใหม่ซึ่งปรากฏขึ้นหลังจากรีสตาร์ท

ที่เกี่ยวข้องbuild.gradleแล้วควรจะวางลงที่ด้านซ้ายของแผง VersionChecker และVersion Checkปุ่มกด ผลลัพธ์คือตารางที่ปรากฏทางด้านขวาซึ่งรวมถึงเวอร์ชันล่าสุดของไลบรารีที่ใช้ในสคริปต์ที่วาง (ดังแสดงในภาพด้านบน)


แม้ว่านี่คือสิ่งที่ฉันกำลังมองหาในตอนแรกมันไม่ทำงานตามที่คาดไว้ ฉันได้เปิดปัญหาใน repo Github เกี่ยวกับเรื่องนี้ github.com/takuaraki/DependenciesVersionChecker/issues/5
osrl

ฉันลองสิ่งนี้และได้รับบอลลูนข้อความแสดงข้อผิดพลาด / ความล้มเหลวทั่วไปเมื่อฉันคลิก "ตรวจสอบเวอร์ชั่น"
Greg Ennis

@GregEnnis มีปัญหากับปลั๊กอินเวอร์ชันล่าสุด โปรดใช้รุ่นเก่ากว่าหรือรอการอัปเดต ...
Dev-iL

11

ดูไฟล์> โครงสร้างโครงการจากนั้นคลิก "คำแนะนำ" ฉันรู้ว่าวิธีแก้ปัญหานี้ได้รับการแนะนำโดย Hemant Sharma และJeremías Gersicich แต่ Android Studio ได้เปลี่ยนเป็นเวอร์ชัน 3.4.1

ป้อนคำอธิบายรูปภาพที่นี่


มีใครที่ได้รับหน้าจอนี้ว่างบน android studio 3.5 ไหม
Nicola Beghin

@ NicolaBeghin ฉันเพิ่งตรวจสอบโครงการว่างเปล่าและได้รับคำแนะนำ 4 ข้อ ใช่มีคำหนึ่งเมื่อไม่แสดงคำแนะนำในเดือนกรกฎาคม แต่พวกเขาแก้ไขข้อผิดพลาดนี้ ฉันคิดว่ามันเป็นปัญหาเซิร์ฟเวอร์ของ Google มันอาจเกิดขึ้นบางครั้ง
CoolMind

ไม่สนับสนุนGradle KTS
Vlad

2

สำหรับการสนับสนุนไลบรารี (com.android.support) การพึ่งพามีตัวเลือกที่ดีกว่า - andle

สามารถสอบถาม jcenter และ maven center ได้เช่นกัน

ง่าย ๆ สามขั้นตอนในการอัพเดทโครงการทั้งหมดในครั้งเดียว

1. ติดตั้ง:

    $ sudo pip install andle

2. ตั้งค่า sdk:

    $ andle setsdk -p <sdk_path>

3. การปรับปรุงการอ้างอิง:

    $ andle update -p <project_path> [--dryrun] [--remote] [--gradle]

--dryrun: พิมพ์เฉพาะผลลัพธ์ในคอนโซล

--remote: ตรวจสอบเวอร์ชั่นใน jcenter และ mavenCentral

--gradle: ตรวจสอบรุ่น gradle

ดูhttps://github.com/Jintin/andleสำหรับข้อมูลเพิ่มเติม


รองรับไลบรารีเท่านั้น
osrl

@osrl ถ้าคุณเพิ่ม - ลบหรือ -r มันจะทำการแยกวิเคราะห์เวอร์ชันบน jcenter
Jintin

0

ฉันจัดการกับปัญหาเดียวกันนี้และลองคำตอบhttps://stackoverflow.com/a/35371234/6412430

สิ่งที่ใช้งานได้จริงสำหรับฉันใน Android Studio 3.4.1 คือ:

File -> Project Structure -> Dependencies

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

ค่อนข้างดึก แต่นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน


ฉันก็พบวิธีนี้เช่นกัน แปลกที่ใครบางคนทำเครื่องหมายลบ
CoolMind

-1

หากต้องการรับการอัปเดตหรือแนะนำสำหรับการพึ่งพาโครงการของคุณควรเป็นเช่นเดียวกับโครงการ Android

FILE -> Project Structure -> MODULES(app) -> Dependencies

เมื่อคุณไปถึงแท็บการพึ่งพาคลิกที่+ปุ่มซึ่งวางอยู่ที่มุมขวาบนของหน้าต่าง เมื่อคุณคลิกที่+เลือก Library Dependencyมันจะเปิดหน้าต่างใหม่สำหรับการChoose Library Dependencyค้นหาการพึ่งพาของคุณในช่องค้นหาการอ้างอิง Android ที่ระบุไว้ทั้งหมดจะได้รับการอัพเดต


ขอบคุณ แต่รายการนี้มีห้องสมุดที่ฉันไม่ได้ใช้และบางครั้งก็ไม่มีสิ่งที่ฉันใช้ นอกจากนี้ Gson ยังอยู่com.google.code.gson:gson:2.2.4ในขณะที่มันเป็นจริงcom.google.code.gson:gson:2.8.5
CoolMind

บางครั้งการอ้างอิงการทำงานกับรุ่น gradle เข้ากันได้โปรดตรวจสอบว่าคุณกำลังใช้ gradle ปรับปรุงในระดับ gradle โครงการของคุณ
Hemant Sharma
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.