फ़्लटर प्रोजेक्ट में Android minSdkVersion कैसे बदलें


86

मैं संचार के लिए ब्लूटूथ का उपयोग करके एक ऐप के लिए एक स्पंदन परियोजना शुरू करने की कोशिश कर रहा था। उसके लिए, मैं स्पंदन नीले का उपयोग कर रहा था ।

दुर्भाग्य से, जब मैं (Android डिवाइस पर) चलाने का प्रयास कर रहा था, तो मैंने जो पहला उदाहरण बनाया, वह मुझे निम्न त्रुटि के साथ मिला था:

FAILURE: Build failed with an exception.

  * What went wrong:
  Execution failed for task ':app:processDebugManifest'.
  > Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:flutter_blue] /home/maldus/Projects/flutter/polmac/build/flutter_blue/intermediates/manifests/full/debug/AndroidManifest.xml as the library might be using APIs not available in 16
    Suggestion: use a compatible library with a minSdk of at most 16,
            or increase this project's minSdk version to at least 19,
            or use tools:overrideLibrary="com.pauldemarco.flutterblue" to force usage (may lead to runtime failures)

अगर मैं एंड्रॉइड स्टूडियो पर था, तो मुझे पता चलेगा कि एंड्रॉइड मिनस्कडाउन कैसे टकरा सकता है, लेकिन एक स्पंदन प्रोजेक्ट (वीएसकोड का उपयोग करके) मैं थोड़ा खो गया था।

क्या स्पंदन के साथ minSdkVersion को बढ़ाना संभव है, और कैसे?

जवाबों:


204

यह वास्तव में minSdkVersion को बढ़ाने के लिए संभव है, लेकिन मुझे इसे खोजने में बहुत अधिक समय लगा क्योंकि Google की खोज के परिणामस्वरूप अधिकतर न्यूनतम Sdk संस्करण फ़्लटर के बारे में चर्चा होती है, यह समर्थन करने में सक्षम होना चाहिए, न कि इसे अपनी परियोजना में कैसे बढ़ाया जाए। ।

एंड्रॉइड स्टूडियो प्रोजेक्ट की तरह, आपको build.gradleफ़ाइल को संपादित करना होगा । एक स्पंदन परियोजना में, यह पथ पर पाया जाता है ./android/app/build.gradle

पैरामीटर को बदलने की आवश्यकता है, निश्चित रूप से, minSdkVersion 16आपको इसकी आवश्यकता है (इस मामले में 19) तक टकराते हुए।

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion 19 //*** This is the part that needs to be changed, previously was 16
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

अब स्पष्ट लगता है, लेकिन मुझे अपने दम पर यह पता लगाने में काफी समय लगा।


8
फ़ाइल-पथ बहुत मददगार था! मैं के तहत build.gradle फ़ाइल को देख रहा था android/और मेरे जीवन के बारे में पता नहीं लगा सका कि इस minSdkVersion को कैसे अपडेट किया जाए।
एडम

क्या होगा अगर मैं कम एसडीके संस्करणों को लक्षित करना चाहता हूं क्योंकि मैं मिनस्कड्रोवर्सन को बदलना नहीं चाहता हूं? @ माल्डस
१२:०६ पर १२

तो इसे बदल नहीं है? मुझे यकीन नहीं है कि मैं इस सवाल को समझता हूं, मैंने इस मुद्दे को हिट किया क्योंकि flutterblue ने minSDKVersion को बदले बिना काम नहीं किया। यदि आप एक कम एसडीके संस्करण के साथ स्पंदन का उपयोग करना चाहते हैं तो मुझे डर है कि स्पंदन लाइब्रेरी की समस्या है।
मालदास

9

आप बदल सकते हैं minSdkVersionफ़ाइल में Project_Name/android/app/build.gradle, defaultconfig:

defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.projectname"
    minSdkVersion 16 // <--- There
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

1

minSdkVersionसमस्या को बदलने के लिए इन चरणों का पालन करें ।

प्रथम => YouProject_name/android/app/build.gradle

दूसरा => defaultconfig {// आप इसे अंदर पा सकते हैं build.gradle}

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.umair.product_details_using_crud"
        minSdkVersion 16 // here you can change minSdkVersison
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

0

यदि आपके ऐप को एंड्रॉइड प्लेटफ़ॉर्म के एक विशिष्ट न्यूनतम संस्करण की आवश्यकता है, तो आप उस संस्करण की आवश्यकता को एप्लिकेशन की build.gradleफ़ाइल में API स्तर सेटिंग्स के रूप में निर्दिष्ट कर सकते हैं । बिल्ड प्रक्रिया के दौरान, ये सेटिंग्स आपके ऐप की मैनिफ़ेस्ट फ़ाइल में विलीन हो जाती हैं। एपीआई स्तर की आवश्यकताओं को निर्दिष्ट करने से यह सुनिश्चित होता है कि आपका ऐप केवल उन उपकरणों पर ही इंस्टॉल किया जा सकता है जो एंड्रॉइड प्लेटफॉर्म का एक संगत संस्करण चला रहे हैं।

आपको फ़ाइल को सेट minSdkVersionमें build.gradleस्थित करना होगा,  <app dir>/android/app और defaultConfigब्लॉक में एक मूल्य सेट करना होगा  :

दो एपीआई स्तर की सेटिंग्स उपलब्ध हैं:

  • minSdkVersion - एंड्रॉइड प्लेटफॉर्म का न्यूनतम संस्करण जिस पर ऐप चलेगा, प्लेटफॉर्म के एपीआई स्तर के पहचानकर्ता द्वारा निर्दिष्ट किया जाएगा।
  • targetSdkVersion - एपीआई स्तर निर्दिष्ट करता है जिस पर ऐप को चलाने के लिए डिज़ाइन किया गया है। कुछ मामलों में, यह एप्लिकेशन को न्यूनतम एपीआई स्तर के लिए परिभाषित उन लोगों का उपयोग करने के लिए प्रतिबंधित होने के बजाय लक्ष्य एपीआई स्तर में परिभाषित तत्वों या व्यवहारों का उपयोग करने की अनुमति देता है।

किसी build.gradle फ़ाइल में डिफ़ॉल्ट एपीआई स्तर की आवश्यकताओं को निर्दिष्ट  करने के लिए, defaultConfig {} ब्लॉक के ऊपर एक या अधिक सेटिंग्स जोड़ें  , ब्लॉक के अंदर नेस्टेड  android {} । आप अपने ऐप्स के विभिन्न संस्करणों के लिए इन डिफ़ॉल्ट मानों को प्रकार या उत्पाद जायके के निर्माण के लिए सेटिंग्स को जोड़कर भी ओवरराइड कर सकते हैं। निम्न  build.gradle फ़ाइल  ब्लॉक  में डिफ़ॉल्ट minSdkVersion और targetSdkVersionसेटिंग्स को  निर्दिष्ट करती है  और   एक उत्पाद स्वाद के लिए defaultConfig {}ओवरराइड करती है  minSdkVersion

android {
   compileSdkVersion 29

  ...
  defaultConfig {
    applicationId "com.app.yourapp”
    minSdkVersion 16
    targetSdkVersion 29
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
  }
  productFlavors {
    main {
      ...
    }
    afterLollipop {
      ...
      minSdkVersion 21
    }
  }
}

अधिक जानकारी के लिए, उपयोग-sdk- तत्व मेनिफ़ेस्ट तत्व दस्तावेज़ और API स्तर दस्तावेज़ देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.