खोज…


टिप्पणियों

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

आधिकारिक दस्तावेज:

https://developer.android.com/studio/write/lint.html

टूल्स का उपयोग करना: xml फाइलों में नजरअंदाज करना

विशेषता tools:ignore xml फ़ाइलों में एक प्रकार का वृक्ष चेतावनी को खारिज करने के लिए इस्तेमाल किया जा सकता है।

लेकिन इस तकनीक के साथ एक प्रकार का वृक्ष चेतावनी को खारिज करना ज्यादातर समय आगे बढ़ने का गलत तरीका है।

एक लिंट चेतावनी को समझा और तय किया जाना चाहिए ... इसे अनदेखा किया जा सकता है अगर और केवल अगर आपके पास इसके अर्थ की पूरी समझ है और इसे अनदेखा करने का एक मजबूत कारण है।

यहाँ एक प्रयोग मामला है जहाँ यह एक लिंट चेतावनी को अनदेखा करने के लिए वैध है:

  • आप एक सिस्टम-ऐप विकसित कर रहे हैं (डिवाइस निर्माता कुंजी के साथ हस्ताक्षरित)
  • आपके ऐप को डिवाइस की तारीख (या किसी अन्य संरक्षित कार्रवाई) को बदलने की आवश्यकता है

फिर आप इसे अपनी उपस्थिति में कर सकते हैं: (अर्थात संरक्षित अनुमति का अनुरोध करना और लिंट चेतावनी को अनदेखा करना क्योंकि आप जानते हैं कि आपके मामले में अनुमति दी जाएगी)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      ...>
    <uses-permission android:name="android.permission.SET_TIME"
        tools:ignore="ProtectedPermissions"/>

"पदावनत" त्रुटि के बिना संसाधन आयात करना

एंड्रॉइड एपीआई 23 या उच्चतर का उपयोग करना, बहुत बार ऐसी स्थिति देखी जा सकती है:

यहाँ छवि विवरण दर्ज करें

यह स्थिति संसाधनों को प्राप्त करने के संबंध में एंड्रॉइड एपीआई के संरचनात्मक परिवर्तन के कारण होती है। अब समारोह:

public int getColor(@ColorRes int id, @Nullable Theme theme) throws NotFoundException    

इस्तेमाल किया जाना चाहिए। लेकिन android.support.v4 लाइब्रेरी का एक और उपाय है।

निम्न निर्भरता build.gradle फ़ाइल में जोड़ें:

com.android.support:support-v4:24.0.0

फिर समर्थन पुस्तकालय से सभी विधियाँ उपलब्ध हैं:

ContextCompat.getColor(context, R.color.colorPrimaryDark);
ContextCompat.getDrawable(context, R.drawable.btn_check);
ContextCompat.getColorStateList(context, R.color.colorPrimary);
DrawableCompat.setTint(drawable);
ContextCompat.getColor(context,R.color.colorPrimaryDark));

इसके अलावा समर्थन पुस्तकालय से अधिक तरीकों का इस्तेमाल किया जा सकता है:

ViewCompat.setElevation(textView, 1F);
ViewCompat.animate(textView);
TextViewCompat.setTextAppearance(textView, R.style.AppThemeTextStyle);
...

विन्यास के साथ LintOptions कॉन्फ़िगर करें

आप build.gradle फ़ाइल में एक lintOptions अनुभाग जोड़कर लिंट को कॉन्फ़िगर कर सकते हैं:

android {

    //.....

    lintOptions {
        // turn off checking the given issue id's
        disable 'TypographyFractions','TypographyQuotes'

        // turn on the given issue id's
        enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'

        // check *only* the given issue id's
        check 'NewApi', 'InlinedApi'

       // set to true to turn off analysis progress reporting by lint
       quiet true
 
       // if true, stop the gradle build if errors are found
       abortOnError false
   
       // if true, only report errors
       ignoreWarnings true
    }
}

आप एक विशिष्ट संस्करण के लिए एक प्रकार का वृक्ष चला सकते हैं (नीचे देखें), जैसे ./gradlew lintRelease , या सभी प्रकार (( ./gradlew lint ) के लिए, जिस स्थिति में यह एक रिपोर्ट तैयार करता है, जो यह बताती है कि कौन सा विशिष्ट संस्करण किसी दिए गए मुद्दे पर लागू होता है।

सभी उपलब्ध विकल्पों के लिए DSL संदर्भ के लिए यहां देखें।

Lint.xml फ़ाइल को कॉन्फ़िगर कैसे करें

आप lint.xml फ़ाइल में अपनी Lint जाँच प्राथमिकताएँ निर्दिष्ट कर सकते हैं। यदि आप यह फ़ाइल मैन्युअल रूप से बना रहे हैं, तो इसे अपने Android प्रोजेक्ट की रूट डायरेक्टरी में रखें। यदि आप एंड्रॉइड स्टूडियो में लिंट वरीयताओं को कॉन्फ़िगर कर रहे हैं, तो lint.xml फाइल स्वचालित रूप से आपके लिए बनाई गई है और आपके एंड्रॉइड प्रोजेक्ट में जोड़ दी गई है।

उदाहरण:

<?xml version="1.0" encoding="UTF-8"?>
    <lint>
        <!-- list of issues to configure -->
</lint>

टैग में गंभीरता विशेषता मान सेट करके, आप किसी समस्या के लिए लिंट जाँच अक्षम कर सकते हैं या किसी समस्या के लिए गंभीरता स्तर बदल सकते हैं।

निम्न उदाहरण एक lint.xml फ़ाइल की सामग्री को lint.xml है।

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

जावा और XML स्रोत फ़ाइलों में लिंट चेकिंग को कॉन्फ़िगर करना

आप अपने जावा और XML स्रोत फ़ाइलों से लिंट चेकिंग को अक्षम कर सकते हैं।

जावा में लिंट चेकिंग को कॉन्फ़िगर करना

अपने एंड्रॉइड प्रोजेक्ट में विशेष रूप से जावा वर्ग या विधि के लिए लिंट चेकिंग को अक्षम करने के लिए, उस जावा कोड में @SuppressLint एनोटेशन जोड़ें।

उदाहरण:

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

सभी लिंट समस्याओं के लिए जाँच अक्षम करने के लिए:

@SuppressLint("all")

XML में लिंट चेकिंग को कॉन्फ़िगर करना

आप tools:ignore उपयोग कर सकते हैं tools:ignore अपनी XML फ़ाइलों के विशिष्ट वर्गों के लिए लिंट जाँच को अक्षम करने के लिए विशेषता को tools:ignore करें

उदाहरण के लिए:

tools:ignore="NewApi,StringFormatInvalid"

XML तत्व में सभी लिंट मुद्दों के लिए जाँच को दबाने के लिए, का उपयोग करें

tools:ignore="all"

मार्क सप्रेस चेतावनियाँ

अपने कोड में कुछ चेतावनियों को चिह्नित करना अच्छा है। उदाहरण के लिए, आपके परीक्षण, या पुराने समर्थन संस्करण के लिए कुछ पदावनत विधियों की आवश्यकता है। लेकिन लिंट चेकिंग चेतावनी के साथ उस कोड को चिह्नित करेगा। इस समस्या से बचने के लिए, आपको एनोटेशन @SuppressWarnings का उपयोग करने की आवश्यकता है।

उदाहरण के लिए, चेतावनियों को उपेक्षित तरीकों से अनदेखा करें। आपको एनोटेशन में भी चेतावनी विवरण लगाने की आवश्यकता है:

@SuppressWarnings("deprecated");
public void setAnotherColor (int newColor) {
    getApplicationContext().getResources().getColor(newColor)
}

इस एनोटेशन का उपयोग करके आप लिंट, एंड्रॉइड और अन्य सहित सभी चेतावनियों को अनदेखा कर सकते हैं। दबाने की चेतावनी का उपयोग करना, कोड को सही ढंग से समझने में मदद करता है!



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow