एंड्रॉइड: मैं ग्रहण कंसोल पर एक चर कैसे प्रिंट कर सकता हूं


91

मैं अपने डिबगिंग उद्देश्य के लिए कंसोल पर एक चर के मूल्य को प्रिंट करना चाहता था, लेकिन system.out.println doesnt काम नहीं करता।


जवाबों:


117

System.out.printlnऔर Log.dदोनों LogCat पर जाते हैं, कंसोल पर नहीं।


1
LibGDX और System.out.println का उपयोग कंसोल पर जाता है। इसे logcat में लाने का तरीका खोज रहा हूँ ताकि मैं अपने ऐप को वास्तविक डिवाइस पर लॉग इन / डिबग कर सकूँ।
मदमेनियो

26

विंडो-> शो व्यू-> अन्य… -> एंड्रॉइड-> लॉगकट


6

मैं Android विकास के लिए नया हूं और मैं यह करता हूं:

1) एक वर्ग बनाएँ:

आयात android.util.Log;

सार्वजनिक अंतिम वर्ग डिबग {
    निजी डिबग () {}

    सार्वजनिक स्थैतिक शून्य (वस्तु संदेश) {
        Log.i ("जानकारी", msg.toString ());
    }
}

जब आप प्रोजेक्ट को पूरा करते हैं तो क्लास को हटा दें।

2) LogCat लिखने के लिए एक संदेश मुद्रित करने के लिए:

Debug.out ("something");

3) लॉगकैट में एक फिल्टर बनाएं और "लॉग टैग द्वारा" इनपुट में "जानकारी" लिखें। आपके सभी संदेश यहां लिखे जाएंगे। :)

युक्ति: सभी त्रुटियों को आसानी से डीबग करने के लिए फ़िल्टर करने के लिए एक और फ़िल्टर बनाएं।


8
इस तरह कोड लिखना एक अच्छा विचार नहीं है क्योंकि लॉग क्लास अधिकांश ... सभी एंड्रॉइड डेवलपर्स से परिचित है। अपनी कक्षा में इसे लपेटकर और नई कार्यक्षमता न जोड़कर, आप जो कुछ भी करते हैं, वह आपके कोड का अर्थ स्वयं के अलावा अन्य लोगों के लिए अस्पष्ट है।
थॉमस डिगन

6

LogCat पर कुछ भी प्रिंट करने के लिए फॉलोइन कोड लिखना बिल्कुल ठीक काम करता है !!

int score=0;
score++;
System.out.println(score);

LogCat पर प्रिंट करता है। यह प्रयास करें


3

मुझे लगता है कि एक चर का मान दिखाने के लिए टोस्ट शायद एक अच्छी विधि है!


1
समस्या तब टोस्ट के साथ आती है जब मान कई होते हैं और तेज होते हैं, जैसे कुल्हाड़ी, y निर्देशन ACTION_MOVE पर लॉगिंग करता है। ऐसे मामलों में एक स्क्रीन टेक्स्ट या लॉग आउटपुट बेहतर समाधान हो सकता है।
TechNyquist

1

ठीक है, टोस्ट कोई जटिल नहीं है, लेकिन इसे काम करने के लिए एक संदर्भ वस्तु की आवश्यकता है, यह हो सकता है MyActivity.this, फिर आप लिख सकते हैं:

Toast.maketext(MyActivity.this, "Toast text to show", Toast.LENGTH_SHORT).show();

हालांकि टोस्ट एक यूआई संसाधन है, फिर इसे ui थ्रेड के लिए अलग थ्रेड में उपयोग करते हुए, एक त्रुटि भेज देगा या बस काम नहीं करेगा यदि आप एक चर प्रिंट करना चाहते हैं, तो वैरिएबल name.toString()और कॉनकटेट डालें जो पाठ के साथ आप maketext स्ट्रिंग पैरामीटर में चाहते हैं; )


0

टोस्ट एक बुरा विचार है, यह एक वैरिएबल के मूल्य को प्रिंट करने के लिए बहुत "जटिल" है। लॉग या सोप का उपयोग करें, और जैसा कि पहले से ही कहा गया है, उनका आउटपुट लॉगकैट पर जाता है। यह केवल तभी समझ में आता है जब आप इस जानकारी को अंतिम-उपयोगकर्ता को उजागर करना चाहते हैं ...


0

यदि आप जिस कोड का परीक्षण कर रहे हैं, वह अपेक्षाकृत सरल है, तो आप पैकेज एक्सप्लोरर में एक नियमित जावा परियोजना बना सकते हैं और कोड को कॉपी कर सकते हैं, इसे चला सकते हैं और इसे वहां ठीक कर सकते हैं, फिर इसे अपने Android प्रोजेक्ट में वापस कॉपी कर सकते हैं।

यह तथ्य कि System.out को पुनर्निर्देशित किया गया है, सरल तरीकों को जल्दी से परीक्षण करने के लिए बहुत कष्टप्रद है, लेकिन यह सबसे आसान समाधान है जो मैंने पाया है कि डिवाइस एमुलेटर को चलाने के लिए केवल यह देखने के लिए कि क्या एक नियमित अभिव्यक्ति काम करती है।


0

वैसे, यदि आप नहीं जानते कि आपके JSONObject के अंदर आपका JSONObject का सटीक स्थान क्या है, तो मैं निम्नलिखित कोड का उपयोग करने का सुझाव देता हूं: (मैंने माना कि "jsonArray" सभी डेटा के साथ आपका मुख्य चर है, और मैं सटीक खोज कर रहा हूं समतुल्य फ़ंक्शन के साथ सरणी के अंदर वस्तु)

    JSONArray list = new JSONArray(); 
    if (jsonArray != null){
        int len = jsonArray.length();
        for (int i=0;i<len;i++)
        { 
            boolean flag;
            try {
                flag = jsonArray.get(i).toString().equals(obj.toString());
                //Excluding the item at position
                if (!flag) 
                {
                    list.put(jsonArray.get(i));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }  
        } 
    }
    jsonArray = list;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.