एंड्रॉइड स्टूडियो में डिबग ऐप में सक्षम नहीं


81

मैं एंड्रॉइड स्टूडियो में एक ऐप बना रहा हूं, अब इसे एडीबी के माध्यम से डीबग करने की कोशिश कर रहा हूं। जब मैं एंड्रॉइड शब्द और निचले पट्टी पर लोगो पर क्लिक करता हूं, तो लॉगकैट ऊपर आता है और मेरे डिवाइस को पहचानता है। तब मैं यह देखता हूं:

स्क्रीनशॉट

इसे "डीबग करने योग्य" बनाने के लिए मुझे अपने ऐप पर क्या करने की आवश्यकता है?

FYI करें पहले इस ऐप को Eclipse में विकसित कर रहा था और adb ने ठीक काम किया।


क्या आपको एक समाधान मिला?
पॉल

डिवाइस से ऐप को अनइंस्टॉल करना और एंड्रॉइड स्टूडियो से इसे फिर से चलाना मेरी समस्या को हल करता है
अहमद बेहज़दी

3
मुझे आज एक समस्या थी, ब्रेकपॉइंट प्रोग्राम को रोक नहीं सकते। और यह build.gradle में सेटिंग के कारण था। मैं सेट करता हूं डिबग बिल्ड प्रकार के साथ minifyEnabled सच है, इसे हटा दें और ब्रेकपॉइंट काम किया।
महल बाई

यहाँ मेरे जवाब पर एक नज़र है । वह समस्या को हल कर सकता है
मुहम्मद तैयब

जवाबों:


85

टूलबार पर एक डीबग आइकन है। यह थोड़ा "बग" जैसा दिखता है और रन आइकन (जो एक प्ले बटन की तरह दिखता है) के ठीक बगल में स्थित है । उसी के साथ एप्लिकेशन लॉन्च करने का प्रयास करें।

Click here to debug

संपादित करें: ग्रैडल के साथ एंड्रॉइड स्टूडियो का उपयोग करते समय निम्नलिखित को हटा दिया जाता है।

AndroidManifest.xml फ़ाइल में एक डीबग ध्वज भी है । यह एप्लिकेशन टैग के तहत स्थित है, और इसे निम्नानुसार "सही" पर सेट किया जाना चाहिए:

<application android:debuggable="true">
</application>

1
क्या हम एक बार में एक-एक रेखा को ग्रहण की तरह बढ़ा सकते हैं? अगर कर सकते हैं, तो कैसे करें?
अरी आर। फिक्री

1
सुनिश्चित करें कि आप कर सकते हैं। एक बार जब आप ब्रेकपॉइंट मारते हैं तो डिबग विंडो प्रदर्शित होती है, शीर्ष पर स्थित टूलबार में विभिन्न चरण कमांड होते हैं। आप विभिन्न डिबग कीबोर्ड शॉर्टकट से भी कॉन्फ़िगर कर सकते हैं File-> Settings-> Keymap- वे नीचे स्थित हैं Main menu-> Run। अधिक जानकारी के लिए इसे देखें ।
free3dom

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

3
नहीं काम 2015, build.gradle putTypes {डिबग {सच्चा सच्चा

2
यह मेरे लिए काम है। मैंने मैनिफ़ेस्ट में डाला <Application android: debuggable = "true"> </ application> और debug perfect। धन्यवाद
एंडी लुइस

111

मैंने निम्न चरण करने के बाद इस समस्या को हल किया:

उपकरण ==> Android ==> ADB एकीकरण को अक्षम करें और इसे फिर से सक्षम करें।

उसके बाद, डिवाइस से यूएसबी को अनप्लग करें और फिर से प्लग करें।

अंत में Shift + F9 दबाएं


इससे मुझे मदद मिली। अचानक डिबग ने काम करना बंद कर दिया, इसके बाद फिर से काम किया।
रुई सैंटोस

स्टिल आज के रूप में काम कर रहा है, पुनः आरंभ करने की कोशिश की और सब कुछ।
मैथिज्स सीजर

1
मुझे बस उस परियोजना उदाहरण के लिए बग स्टूडियो बनाने के लिए एंड्रॉइड स्टूडियो को बंद करने और फिर से खोलने की आवश्यकता थी: /
राचेल

18
एंड्रॉइड स्टूडियो संस्करण 3.1.3 में "टूल ==> एंड्रॉइड" नामक ऐसा कोई मेनू आइटम नहीं है और मुझे यह विकल्प कहीं भी नहीं मिल सकता है
जेम्स वाटकिंस

1
एंड्रॉइड स्टूडियो 4 के लिए मेनू में कहीं भी "अदब" विकल्प नहीं है
स्पार्टीग्व

34

एक और बात से सावधान रहना (मैंने ऐसा किया था इसलिए मुझे पता है, डुह)। सुनिश्चित करें कि डिबग के लिए प्रोगार्ड को सक्षम न करें!


6
धन्यवाद और minifyEnabled को झूठा और सिकोड़ने का काम करना पड़ा। स्रोत
Janardhan R

16

एंड्रॉइड स्टूडियो में कई बार डिबगिंग के बाद भी मुझे यादृच्छिक रूप से यह समस्या थी। एक दिन डिबगर सिर्फ अटैच नहीं करेगा। मुझे बस एंड्रॉइड स्टूडियो को छोड़ना पड़ा और इसे फिर से खोलना पड़ा और डिबगर ने फिर से काम करना शुरू कर दिया।


16
    <application android:debuggable="true">
</application>

यह अब काम नहीं करता है! प्रकट में डिबगेबल = "सही" का उपयोग करने की आवश्यकता नहीं है।

इसके बजाय, आपको बिल्ड वेरिएंट को "डीबग" पर सेट करना चाहिए

डिबग मोड

Android Studio में, BUILD -> Select Build Variant पर जाएँ

अब डिबगिंग का प्रयास करें। धन्यवाद


बिल्ड मेनू में "सेलेक्ट बिल्ड वेरिएंट" विकल्प नहीं है।
पीट एल्विन

14

यह मेरे लिए काम किया:

  1. Android Studio बंद करें।
  2. खोल खोलो, और लिखो:

    adb kill-server

    adb start-server


मुझे इसकी ही खोज थी। इससे पहले, मैं adb reconnectइसे एक साधारण कमांड के साथ कर सकता था, लेकिन यह एएस 3.1 में ऐसा नहीं करता है (शायद मैं कुछ गलत कर रहा हूं, या पर्याप्त नहीं है?
विक्टरबी

Btw, इस समाधान ने एएस, या टर्मिनल सत्र को बंद किए बिना मेरे लिए काम किया।
विक्टरबी

11

सुनिश्चित करें कि आपने ADB एकीकरण सक्षम किया है।

मेनू में: उपकरण -> Android -> ADB एकीकरण सक्षम करें (v1.0)


11

यदि आपका एप्लिकेशन डीबग करने योग्य हुआ करता था, और अचानक यह अधिक डीबग करने योग्य नहीं था। मेरे समाधान हैं

  1. अक्षम करें और USB debugअपने फ़ोन में स्विच सक्षम करें।
  2. अपना एप्लिकेशन अनइंस्टॉल करें।
  3. Android Studio में चलाएँ क्लिक करें।

8

एक मामला जहां आप एंड्रॉइड स्टूडियो में एक एप्लिकेशन को डिबग करने में असमर्थ हो सकते हैं, जब आपके पास "रिलीज़" बिल्ड वैरिएंट चयनित है। मेरे लिए हुआ - ग्रैडल ऐप का एक रिलीज़ संस्करण बनाता है (जो डीबग करने योग्य नहीं है) और फिर एंड्रॉइड स्टूडियो डिबगर को कनेक्ट करने की कोशिश में विफल रहता है।


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

7

यह कभी-कभार मेरे साथ होता है और मुझे अभी तक यह पता लगाना है कि क्यों। पहले से ही पोस्ट किए गए समाधानों में से किसी ने भी मेरे लिए काम नहीं किया है। केवल एक चीज जो मेरे लिए काम करती है:

  1. डिवाइस से एप्लिकेशन अनइंस्टॉल करें।
  2. स्वच्छ परियोजना। "बिल्ड -> क्लीन प्रोजेक्ट।"
  3. पुनर्निर्माण और स्थापित करें।

7

जब आप अपने मैनिफ़ेस्ट फ़ाइल में कस्टम "Android: प्रक्रिया" सेट करते हैं, तो "एंड्रॉइड प्रक्रिया में डिबगगर संलग्न करें" आइकन शॉड का उपयोग किया जाना चाहिए।
मेरे मामले में मुझे उपयुक्त प्रक्रिया का चयन करना चाहिए और "डीबगर के लिए प्रतीक्षा करें" संवाद दिखाई देने के ठीक बाद ओके बटन पर क्लिक करें।
यहाँ छवि विवरण दर्ज करें


भयानक काम है, लेकिन अभी मेरे लिए काम कर रहा है, धन्यवाद!
जूल्स

मेरे लिए काम किया भले ही मेरी मैनिफ़ेस्ट फ़ाइल में कस्टम "android: process" नहीं था।
जेसन बोवर्स

यह मेरे लिए समाधान था। धन्यवाद
gmartinsnull

4

जांचें कि क्या आप ऐप-प्रोजेक्ट डिबग-बटन के बगल में ड्रॉप-डाउन मेनू में चयनित हैं। कभी-कभी Android Studio सिर्फ इस चयन को रीसेट करता है ...

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


4

यदि आप सक्षम हैं

<application android:debuggable="true">
</application>

एप्लिकेशन मैनिफ़ेस्ट। Xml में सुनिश्चित करें कि अंतिम हस्ताक्षरित एपीके को बनाते समय आप इसे निष्क्रिय कर दें क्योंकि यह हमलावरों के लिए सुरक्षा पाश छेद के रूप में काम कर सकता है। यदि आपका कोई एप्लिकेशन लॉग नहीं दिखाता है तो केवल इसका उपयोग करें। हालांकि उस विकल्प पर विचार करने से पहले यह कोशिश करें:

Android स्टूडियो में टूल पर नेविगेट करें

 Tools==>android==>disable adb integration and again enable it

3

यह भी सुनिश्चित करें कि आप अन्य अनुप्रयोगों का उपयोग नहीं कर रहे हैं जो उदाहरण के लिए ग्रहण की तरह, एडीबी का भी उपयोग कर सकते हैं।


3

मैंने सभी तरीकों का परीक्षण किया और उनमें से गैर काम किया !!!

अंत में अदब पोर्ट को बदलना पड़ा और इसने काम किया। नीचे की तरह पहले मार एडीबी सर्वर:

adb kill-server

फिर इसे दूसरे पोर्ट का उपयोग करके पुनः आरंभ करें

adb -P 5038 start-server

3

मैंने नीचे दिए गए आदेश का उपयोग करके साफ निर्माण किया था .. आश्चर्यजनक रूप से काम किया।

sh gradlew क्लीन बिल्ड

उम्मीद है कि किसी को मदद मिले!


1
हमें इसे किस कंसोल में शुरू करना है?
दिमित्रीबॉयको

इस आदेश को एंड्रॉइड स्टूडियो टर्मिनल में चलाएं या बाहरी टर्मिनल से अपनी परियोजना पर नेविगेट करें
हैदर अली

3

मेरे मामले में किसी भी लाइन के पास एक रेड सर्कल एक क्रॉस और रेड लाइन के साथ एक संदेश के साथ दिखाई दिया: "कोई निष्पादन योग्य कोड लाइन पर नहीं मिला ..." जैसे एंड्रॉइड स्टूडियो में एक ब्रेक कोड नहीं निष्पादन योग्य कोड लाइन पर पाया गया

के अद्यतन के बाद एक समस्या दिखाई दी build.gradle। हमने कोटलिन समर्थन को शामिल किया, इसलिए कई विधियां 64K को पार कर गईं। समस्या रेखाएँ:

buildTypes {
    debug {
        minifyEnabled true

उन्हें इसमें बदलें:

buildTypes {
    debug {
        minifyEnabled false
        debuggable true

फिर एक बटन के साथ एक सिंक सिंक करें "ग्रेड फाइल के साथ सिंक प्रोजेक्ट"। यदि आपके आवेदन को पुनः आरंभ करने के बाद आपको एक त्रुटि मिलेगी: "त्रुटि: .dex फ़ाइल में विधि संदर्भों की संख्या 64K से अधिक हो सकती है। इस समस्या को हल करने का तरीका जानें https://developer.android.com/tools/building/। multidex.html ", तब, जैसे .dex फ़ाइल में विधि संदर्भों की संख्या 64k API 17 से अधिक नहीं हो सकती , निम्न पंक्तियों को इसमें जोड़ें build.gradle:

android {

    defaultConfig {
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
    implementation 'com.android.support:multidex:1.0.2'
}

अपडेट करें

Https://developer.android.com/studio/build/multidex.html के अनुसार, एंड्रॉइड 5.0 के नीचे मल्टीडेक्स समर्थन को सक्षम करने के लिए निम्न कार्य करें। इन उपकरणों में यह शुरू नहीं होगा।

खोलें AndroidManifestऔर टैग ढूंढें <application>। पास android:name=एक अनुप्रयोग वर्ग का संदर्भ है। इस वर्ग को खोलें। इसके साथ आवेदन वर्ग बढ़ाएँ MultiDexApplication:

public class MyApplication extends MultiDexApplication { ... }

यदि कोई एप्लिकेशन वर्ग सेट नहीं है, तो लिखें:

<application
        android:name="android.support.multidex.MultiDexApplication" >
    ...
</application>

2

डिवाइस या एमुलेटर पर डेवलपर मोड और यूएसबी डिबगिंग को सक्षम करना सुनिश्चित करें। (नया सेट करते समय भूलना आसान है।)


2

आपके पास टूल-> Android-> ADB इंटीग्रेशन सक्रिय सक्रिय होना चाहिए।


2

मैं इसे रन -> कॉन्फ़िगरेशन में संपादित करके, मेरी परियोजना का चयन करते हुए, डिबगर टैब का चयन करके, फिर 'डीबग प्रकार' को 'ऑटो' से 'ड्यूल' में बदलकर ठीक करने में सक्षम था:यहाँ छवि विवरण दर्ज करें


1

इससे मेरी समस्या हल हो गई। डिवाइस से ऐप को अनइंस्टॉल करें और इसे एंड्रॉइड स्टूडियो के माध्यम से फिर से चलाएं।


1

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


1
मुझे एंड्रॉइड स्टूडियो 4.1 में इस मुद्दे का सामना करना पड़ा और आपके समाधान ने मेरी मदद की। धन्यवाद
Buckstabue

1

मेरे मामले में, डिबग बिल्ड में प्रोगार्ड को हटाने के लिए टेक्स्ट फ़ाइल को पूरी तरह से साफ़ करके proguard-rules.proऔर minifyEnabled falseबिल्ड.ग्रेड फ़ाइल में बनाकर टाइप करें

  debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

1
<application android:debuggable="true">
</application>

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

buildTypes {
    debug {
        debuggable true
    }

    release {
        debuggable false
    }
}

** मैंने buildTypes के अंदर अन्य पंक्तियों को हटा दिया है जो यहां मेरे ग्रेड फ़ाइल से इस प्रश्न के लिए प्रासंगिक नहीं हैं।

डिबगिंग करते समय यह भी सुनिश्चित करें कि आप अपने एंड्रॉइड स्टूडियो में सही बिल्ड वेरिएंट का चयन करें।

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


1

वर्षों से मैंने कई बार इस धागे का दौरा किया है और हमेशा एक अलग प्रतिक्रिया थी जिसने मेरी मदद की। इस बार मुझे पता चला कि यह मेरा USB हब है जो डिबगर को ठीक से काम करने से रोक रहा था। यह जितना अजीब लगता है, एक यूएसबी हब के माध्यम से मेरे कंप्यूटर से जुड़ा फोन होने के बजाय, मुझे इसे सीधे अपने मैक से कनेक्ट करना पड़ा और डिबगिंग ने काम करना शुरू कर दिया।


1

एंड्रॉइड स्टूडियो से एडीबी सर्वर को पुनरारंभ करें: उपकरण -> " समस्या निवारण डिवाइस कनेक्शन "


1

मेरे मामले में, मैं भूल गया minifyEnabled = true और मेरे डीबग buildType में trueResources = true। मैं इन मूल्यों को झूठ में बदल देता हूं, यह फिर से काम करता है!

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


0

यहाँ थोड़ा उफ़ है जो कुछ पकड़ सकता है: यह गलती से लॉगकैट आउटपुट विंडो (मैग्निफाइंग ग्लास के साथ टेक्स्ट बॉक्स) के लिए टाइप किया गया एक फ़िल्टर है, और इसके बारे में भूल जाना बहुत आसान है। जो संभावित रूप से सभी आउटपुट को फ़िल्टर करेगा और ऐसा लगेगा कि कुछ भी नहीं है।


0

मेरे मामले में मुझे एक ही समस्या थी क्योंकि मैं हस्ताक्षर किए गए डीबग करने का प्रयास करता हूं। मेरे ग्रेडल कॉन्फिगर में मैंने डिफरेंशेंट्स को वेरिएंट का निर्माण किया, और प्रोडक्शन कीस्टॉर के साथ रिलीज़ को डिबग करने की कोशिश की


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