minCompileSdk (31) त्रुटि: Kotlin में AAR समस्या का समाधान

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: आपका प्रोजेक्ट बिल्ड नहीं हो रहा? आप अकेले नहीं हैं

\n\n

कल्पना करें: आप Kotlin में कोड लिख रहे हैं, सब कुछ ठीक चल रहा है, लेकिन अचानक — बैम! — बिल्ड फेल हो जाता है और एक रहस्यमयी संदेश आता है: The minCompileSdk (31) specified in a dependency's AAR metadata. यह दर्द जाना-पहचाना है? यह त्रुटि Stack Overflow पर सबसे लोकप्रिय "रोड़ों" में से एक है (हजारों व्यू और सैकड़ों टिप्पणियाँ)। यह तब होती है जब आप एक ऐसी लाइब्रेरी का उपयोग करते हैं जो आपके प्रोजेक्ट में सेट किए गए compileSdk से अधिक नए वर्जन की मांग करती है।

\n\n

इस लेख में, हम जानेंगे कि Kotlin और Java प्रोजेक्ट्स के लिए AAR मेटाडेटा में minCompileSdk (31) त्रुटि को कैसे ठीक करें। आप कारणों को समझेंगे, तैयार समाधान प्राप्त करेंगे, और भविष्य में इस समस्या से बचने का तरीका सीखेंगे। चलिए शुरू करते हैं!

\n\n

minCompileSdk क्या है और यह बिल्ड को क्यों तोड़ता है?

\n\n

सिद्धांत से शुरू करते हैं। प्रत्येक Android प्रोजेक्ट का अपना compileSdk होता है — Android SDK का वह वर्जन जिसके साथ वह कंपाइल होता है। लाइब्रेरीज़ (AAR) भी अपने लिए न्यूनतम compileSdk निर्दिष्ट कर सकती हैं। यदि आपका वर्जन कम है, तो Gradle एक त्रुटि देता है। यह असंगति से सुरक्षा है: लाइब्रेरी उन API का उपयोग कर सकती है जो पुराने SDK में मौजूद नहीं हैं।

\n\n

त्रुटि The minCompileSdk (31) specified in a dependency's AAR metadata का शाब्दिक अर्थ है: "अरे, इस लाइब्रेरी को SDK 31 (Android 12) या उससे ऊपर के साथ कंपाइलेशन चाहिए, जबकि आपका वर्जन कम है!"

\n\n

घटना के सामान्य परिदृश्य

\n
    \n
  • आपने एक नई लाइब्रेरी जोड़ी (जैसे, androidx.compose या Firebase) जो SDK 31+ की आवश्यकताओं के लिए अपडेट हो गई है।
  • \n
  • आप compileSdk = 30 वाले पुराने प्रोजेक्ट टेम्पलेट का उपयोग कर रहे हैं।
  • \n
  • आप Gradle और SDK Tools को अपडेट करना भूल गए।
  • \n
\n\n

AAR में minCompileSdk (31) त्रुटि कैसे ठीक करें: 3 सिद्ध तरीके

\n\n

Kotlin और Java के लिए चरण-दर-चरण समाधान यहां दिए गए हैं। ध्यान दें: कोड हर जगह Kotlin (DSL) में है, लेकिन तर्क Groovy के लिए समान है।

\n\n

तरीका 1: compileSdk बढ़ाएं (अनुशंसित)

\n

सबसे सही तरीका है compileSdk को लाइब्रेरी द्वारा आवश्यक वर्जन में अपडेट करना। आमतौर पर यह 31 (Android 12) या 33 (Android 13) होता है।

\n\n

चरण:

\n
    \n
  1. फ़ाइल build.gradle.kts (मॉड्यूल स्तर app) खोलें।
  2. \n
  3. android सेक्शन ढूंढें।
  4. \n
  5. compileSdk को आवश्यक मान में बदलें।
  6. \n
\n\n
android {\n    compileSdk = 33 // या 31, 32 — आवश्यकताओं के अनुसार\n\n    defaultConfig {\n        minSdk = 21\n        targetSdk = 33\n        // ...\n    }\n}\n
\n\n

यह क्यों काम करता है? आप बस डिपेंडेंसी की आवश्यकताओं को पूरा कर रहे हैं। यदि लाइब्रेरी SDK 31 मांगती है, तो उसे SDK 31 दें। Android Studio में संबंधित SDK इंस्टॉल करना न भूलें (SDK Manager → Android 12.0 (API 31))।

\n\n

तरीका 2: लाइब्रेरी का वर्जन कम करें

\n

यदि आप compileSdk नहीं बढ़ाना चाहते (उदाहरण के लिए, पुराने उपकरणों के साथ संगतता के कारण), तो आप लाइब्रेरी को उस वर्जन पर डाउनग्रेड कर सकते हैं जिसे SDK 31 की आवश्यकता नहीं है।

\n\n

उदाहरण: implementation("androidx.compose:compose-bom:2023.10.01") के बजाय पुराने वर्जन का उपयोग करें, जैसे 2022.10.00।

\n\n
dependencies {\n    // पहले था (त्रुटि उत्पन्न करता है)\n    // implementation("androidx.compose:compose-bom:2023.10.01")\n\n    // अब है (SDK 31+ आवश्यकता के बिना स्थिर वर्जन)\n    implementation("androidx.compose:compose-bom:2022.10.00")\n}\n
\n\n

यह एक अस्थायी समाधान है, लेकिन यह तब मदद करता है जब आप पुराने SDK पर अटके हों। मुख्य नुकसान यह है कि आप नई सुविधाओं और सुरक्षा सुधारों को खो देते हैं।

\n\n

तरीका 3: Gradle के माध्यम से minCompileSdk को ओवरराइड करें (असामान्य)

\n

एक चालाक लेकिन अप्रलेखित विधि है — Gradle कॉन्फ़िगरेशन के माध्यम से AAR मेटाडेटा को ओवरराइड करना। यह विधि प्रोडक्शन के लिए अनुशंसित नहीं है, लेकिन यदि लाइब्रेरी अपडेट नहीं होती है तो यह बचा सकती है।

\n\n
andr                

ब्लॉग

पुस्तक अनुशंसाएँ