Android स्टूडियो में डिफ़ॉल्ट गतिविधि नहीं मिली


93

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

जब मैं एंड्रॉइड स्टूडियो लॉन्च करता हूं तो मुझे यह त्रुटि मिलती है "इवेंट डिस्पैच थ्रेड से केवल एक्सेस की अनुमति है"

मैं जिस गतिविधि का उपयोग कर रहा हूं वह एक खंड गतिविधि है।

अब तक मैंने पुनर्निर्माण और कैश / पुनः आरंभ को अमान्य बनाने की कोशिश की है। दोनों का कोई फायदा नहीं था।

कृपया मुझे बताएं कि मैं समस्या को ठीक करने के लिए क्या कर सकता हूं।


जवाबों:


45

एंड्रॉइड स्टूडियो में, प्रोजेक्ट पर राइट क्लिक करें और ओपन मॉड्यूल सेटिंग्स चुनें । फिर अपने मॉड्यूल में स्रोत टैब पर जाएं, src फ़ोल्डर ढूंढें , उस पर राइट क्लिक करें और इसे स्रोत (नीला रंग) के रूप में चिह्नित करें ।

EDIT: Android Studio के बाद के संस्करणों में कोई स्रोत टैब नहीं है, लेकिन आप इसके बजाय build.gradle फ़ाइल को संपादित कर सकते हैं : https://stackoverflow.com/a/22028681/1101730 (टिप्पणी जोश के लिए धन्यवाद)


27
मैं 0.6.1 में यह कैसे कर सकता हूं ? मुझे एक स्रोत टैब दिखाई नहीं देता है ।
lschlessinger

7
न ही मैं। प्रॉपर्टीज, साइनिंग, फ्लेवर, बिल्ड टाइप्स और डिपेंडेंसीज
जूनियर मेहे

4
मेरे पास "स्रोत" टैब नहीं था, इसलिए मैंने इसके बजाय build.gradle फ़ाइल को संपादित किया: stackoverflow.com/a/22028681
जोश

2
उत्तम! @Micer की मदद करने के लिए धन्यवाद। दोस्तों, आपके IntelliJ प्रोजेक्ट प्रेस 'F4' में, तो आपके पास तीन टैब (स्रोत, पथ, निर्भरता) हैं, 'स्रोत' टैब पर जाएं और जांचें कि 'src' फ़ोल्डर (ट्री संरचना में) नीला है या नहीं। यदि प्रोजेक्ट संरचना में स्रोत फ़ोल्डर को शामिल करने के लिए 'Alt + S' दबाएं नहीं।
रयान अमरल

1
@IgorGanapolsky आप सही हैं, ऐसा लगता है जैसे Android स्टूडियो के बाद के संस्करणों में स्रोत टैब हटा दिया गया है। जोश के जवाब की जाँच करें।
15

51

क्या आपने ACTION_MAINअपनी मुख्य गतिविधि में आशय फ़िल्टर जोड़ा है ? यदि आप इसे नहीं जोड़ते हैं, तो Android को पता नहीं चलेगा कि मुख्य गतिविधि के रूप में कौन सी गतिविधि शुरू की जाए।

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

<intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <action android:name="com.package.name.MyActivity"/>
      <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

1
हाँ, यह किया जाता है। मैंने तय किया कि "ओपन डिस्पैच थ्रेड का उपयोग केवल इवेंट डिस्पैच थ्रेड से करने की अनुमति है" ओपन जेडीके के बजाय ऑर्कल जेडडीके का उपयोग करके। डिफ़ॉल्ट गतिविधि अभी भी गायब है हालांकि
विपश्यना विजयरांगन

5
इसके अलावा नाम "com.package.name.MyActivity"अगर सब लोप किया जा सकता है <intent-filter>तत्व एक अंदर है <activity>तत्व है कि अपने नाम स्थान में अपने MyActivity से मेल खाती है।
ज़ियावी मोंटेरो

हह, मैंने एक वर्ग का नाम बदल दिया, Filterजिसमें सभी चर नाम शामिल हैं filterऔर जाहिर तौर पर एंड्रॉइड स्टूडियो में शामिल करने का फैसला किया गया है AndroidManifest.xmlऔर <intent-*filter*>। इस जवाब ने मेरी दोहरी जाँच की AndroidManifest.xmlऔर मुझे बग खोजने में मदद की =)
स्टीफन हेन्निसेन

यह भी कहाँ प्रलेखित है? मैं इसे नहीं ढूँढ सकता ...
mirabilos

32

एंड्रॉइड स्टूडियो में एक प्रोजेक्ट को आयात करते समय मुझे एक ही समस्या थी, शायद इस तथ्य के कारण कि प्रोजेक्ट को मेरे कंप्यूटर पर वर्तमान में स्थापित किए गए एंड्रॉइड स्टूडियो के पुराने संस्करण में विकसित किया गया है।

क्या हल किया गया यह बस चुनना था:

File -> Invalidate Caches / Restart...

और फिर चयन Invalidate and Restart


1
बहुत बहुत शुक्रिया @syntagma, आपके मार्गदर्शन ने घंटों के प्रयास के बाद मेरी समस्या हल कर दी।
एमएमजी

16

यदि आपके पास टैब नहीं है और आपने खाली गतिविधि के साथ शुरुआत की है तो यह कोशिश करें। नीचे एक नमूना कोड उदाहरण है:

<application android:label="@string/app_name">

    <activity android:name=".HelloActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

</application>

अब अपने AndroidManifest.xml फ़ाइल पर जाएँ। अगला इस कोड से आशय फ़िल्टर की प्रतिलिपि बनाएँ। अपनी मैनिफ़ेस्ट फ़ाइल को वास्तव में अच्छा देखें और इरादे फ़िल्टर को ठीक उसी स्थान पर चिपकाएँ, जो ऊपर दिए गए कोड में है। (के बाद .yourActivityName> मैनिफ़ेस्ट का हिस्सा।) मुझे आशा है कि इससे मदद मिली।


13

यदि आपको अभी भी एक त्रुटि मिल रही है जो कहते हैं कि "डिफ़ॉल्ट गतिविधि नहीं मिली है" जब आप निष्पादन के बाद भी रन कॉन्फ़िगरेशन को संपादित करने का प्रयास करते हैं:

अमान्य कैश और पुनरारंभ करें

फिर सेटिंग्स / प्राथमिकताएँ फ़ोल्डर को हटाने का प्रयास करें:

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

या मैक पर:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

यदि आपने अपने पैकेजों का नाम बदल दिया है या आपने अपने संस्करण नियंत्रण से शाखाएं बदल ली हैं, तो कभी-कभी एंड्रॉइड स्टूडियो सभी फाइलों को पहचान नहीं पाता है और चीजों को गड़बड़ कर देता है। एकमात्र समाधान जो मेरे लिए काम करता है, वह एएस को बंद करना है, फिर हटा दिया गया है ।AndroidStudioXY (जहां XY आपका संस्करण नंबर है) जो @ Phileo99 ने बताया।
ज़र्बेसा क्रिश्चियन

1
तुमने मेरी जान बचाई! बस ऐसा करें / <USER_HOME_DIR> /। AndroidStudioPreview3.2
nadafafif

आपका स्वागत है @nadafafif! कृपया मेरे उत्तर को बढ़ाएं यदि यह आपकी मदद करता है।
Phileo99

@ Phileo99 पहले ही ऐसा कर चुका है। खुद को ऐसा करने से रोक नहीं सके। :) चीयर्स। ऐसे ही मदद करते रहो।
नाडाफ़िफ़

इससे मदद मिली, लेकिन इस बात का ध्यान रखें कि आप बहुत सारा सामान डाउनलोड करेंगे। इसे डाउनलोड करने में लगभग 15 मिनट लगते हैं
वल्गल

10

जब मैंने "ओपन मॉड्यूल सेटिंग्स" पर क्लिक किया, तो कोई "स्रोत" टैब नहीं था , मुझे लगता है कि यह एंड्रॉइड स्टूडियो के नए संस्करणों के लिए हटा दिया गया है (मैं 0.8.14 पर हूं)। इसलिए मुझे इसके बजाय ऐसा करना पड़ा:

ब्लॉक के build.gradleअंदर फ़ाइल में इन पंक्तियों को जोड़ें android { ... }:

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

फ़ाइल को संपादित करने के बाद, टूल> एंड्रॉइड> सिंक प्रोजेक्ट के साथ ग्रैड फाइल्स पर क्लिक करें ।

इस जवाब और इस टिप्पणी का श्रेय ।


9

निम्नलिखित ने मेरे लिए चाल चली। से भागो -> संपादित करें विन्यास

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


मैं इस समाधान के खिलाफ सलाह दूंगा क्योंकि इससे सैमसंग गैलेक्सी एस 5 नियो और सैमसंग गैलेक्सी एस 6 पर उपलब्ध अनुप्रयोगों की सूची में आवेदन को प्रदर्शित नहीं किया जा सकता है।
त्यूण कोइजमैन

3

मेरी समस्या एक अतिरिक्त त्रुटि के लिए आई, जो कभी-कभी बताते हुए, पॉप अप कर रही थी

Manifest Merger failed with multiple errors in Android Studio

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


2

यह मेरे साथ हुआ क्योंकि मैंने पथ को प्रकट में कैपिटल कर दिया था। बदला हुआ:

<intent-filter>
    <action android:name="ANDROID.INTENT.ACTION.MAIN"/>
    <category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER"/>
</intent-filter>

सेवा

<intent-filter>
  <action android:name="android.intent.action.MAIN"/>
  <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

और यह तय हो गया था


आपने मेरा दिन बचाया! साभार
शिव कुमार

2

मैं आज उसी मुद्दे पर भाग रहा था और यहां जवाबों के माध्यम से जा रहा था।

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

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

इसलिए उन सभी लोगों के लिए जो इस में भाग लेते हैं: पहली कोशिश करने के लिए एंड्रॉइड स्टूडियो को पुनरारंभ करना है और केवल अगर यह समस्या हल नहीं करता है तो यहां अन्य उत्तरों की कोशिश करें।


2

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

मेरे लिए, मेरी टीम के सदस्यों में से एक या खुद IDE ने, लांचर गतिविधियों को प्रकट प्रविष्टि में बदल दिया था, जिससे यह इस तरह दिखे:

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

हालांकि, यह वास्तव में इस तरह दिखना चाहिए:

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

तो कृपया डबल, ट्रिपल, चौगुनी प्रकट में अपनी लांचर गतिविधि के प्रारूप की जाँच करें और आप कुछ समय के लिए अपने आप को बचाने में सक्षम हो सकते हैं।

उम्मीद है की यह मदद करेगा।

EDIT: मैं दृढ़ता से लोगों को उन उत्तरों के साथ नहीं जाने का सुझाव देता हूं जो आपके मॉड्यूल के कॉन्फ़िगरेशन विकल्पों के अंदर एक लॉन्चर गतिविधि को मैन्युअल रूप से चुनने का सुझाव देते हैं, क्योंकि इससे एप्लिकेशन को सैमसंग गैलेक्सी S5 दोनों पर इंस्टॉल किए गए ऐप्स की सूची में नहीं दिखाया जा सकता है। नियो और सैमसंग गैलेक्सी एस 6 (कम से कम मेरे लिए)।


2

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

प्रेस एप्लिकेशन -> "कुछ भी नहीं" पर लॉन्च में परिवर्तन मूल्य के बाद कॉन्फ़िगरेशन संपादित करें


1

कृपया प्रकट करें कि आपकी मुख्य गतिविधि के साथ पैकेज नाम समान है


1
  1. एंड्रॉइड स्टूडियो में प्रोजेक्ट परिप्रेक्ष्य (एंड्रॉइड परिप्रेक्ष्य नहीं) पर स्विच करें।

  2. सुनिश्चित करें कि आपकी परियोजना ग्रेडिंग प्लगइन की डिफ़ॉल्ट संरचना (अर्थात project_dir / app / src / main / java ... ) का अनुसरण करती है।

  3. सभी हटाएँ निर्माण फ़ोल्डर और सबफ़ोल्डर है कि आप देखते हैं।

  4. टूलबार में बिल्ड -> क्लीन प्रोजेक्ट , फिर बिल्ड -> पुनर्निर्माण प्रोजेक्ट पर क्लिक करें

  5. प्रोजेक्ट को चलाने का प्रयास करें।


1

आप एंड्रॉइड स्टूडियो को "संपादन कॉन्फ़िगरेशन" मेनू पर जाकर शिकायत करने के लिए नहीं मिल सकते हैं (तीन बार "शिफ्ट" टैप करें, "कॉन्फ़िगरेशन संपादित करें" टाइप करें), फिर लॉन्च विकल्प> लॉन्च को "कुछ भी नहीं" में बदलें।

मैं शायद किसी भी भ्रम से बचने के लिए, निर्देशों वाली एक सामान्य गतिविधि जोड़ूंगा।


इसने मेरा समय बचाया
सयाली

1

मेरे मामले में, यह तब काम किया जब मैंने .idea फ़ोल्डर को प्रोजेक्ट (प्रोजेक्ट / .ida) से हटा दिया और फिर से एंड्रॉइड स्टूडियो को फिर से खोला।


.Idea फ़ोल्डर को निकालने से मेरे मामले में मदद मिली, धन्यवाद! स्पष्टीकरण के लिए ".iml" एक्सटेंशन वाली सभी फाइलें .idea फ़ोल्डर के अंदर थीं। कृपया केवल .iml फ़ाइलों को न निकालें क्योंकि इससे अन्य त्रुटियां हो सकती हैं!
कॉर्डिस ऑडैक्स एग्रीनोवा

0
  1. प्रोजेक्ट पर राइट क्लिक करें और ओपन मॉड्यूल सेटिंग्स चुनें।
  2. अपने मॉड्यूल में स्रोत टैब पर जाएं।
  3. अपना src फ़ोल्डर खोजें।
  4. इस पर राइट क्लिक करें और इसे स्रोत के रूप में चिह्नित करें।

इससे मेरे मामले में त्रुटि हल हो गई।


0

यदि आपने com.dir.sample1 के उदाहरण के लिए निर्देशिकाओं (वर्ग संरचना) का नाम बदल दिया है, तो उसके बाद पैकेज com.dir.sample को com.dir.sample1 में बदलना न भूलें।


0

"Workspace.xml" संशोधित करें (इसे खोजने के लिए Ctrl + Shft + R दबाएं)

  1. पैकेज नाम के साथ गतिविधि नाम को संशोधित करें

  2. "Name =" USE_COMMAND_LINE "को मूल्य =" असत्य "में बदलना सुनिश्चित करें

  3. प्रोजेक्ट को फिर से लोड करें

किया हुआ!


मैं Ctrl + Shft + F, + R = के साथ खोज करूँगा जहाँ F = ढूंढें।
शीशम

0

मेरे जैसे उन लोगों के लिए जो "स्रोत टैब" खोजने के लिए संघर्ष कर रहे थे:

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

यहां आपको नीले रंग में अपना "src" फ़ोल्डर चिह्नित करना होगा (पहले मार्क में क्लिक करें : स्रोत , फिर आपके src फ़ोल्डर में), और आप जाने के लिए अच्छे हैं।


0

आपके द्वारा उठाए जा सकने वाले दो चरण हैं:

  1. कॉन्फ़िगरेशन पर जाएं और लॉन्च की जाने वाली गतिविधि का नाम दर्ज करें
  2. अगर यह अभी भी डिसेबल इंस्टेंट रन नहीं कर रहा है

0

मैंने सभी समाधानों की कोशिश की है, लेकिन बिल्कुल भी काम नहीं कर रहा है। की तुलना में मैंने अपने एंड्रॉइड स्टूडियो में इंस्टेंट रन को अक्षम करने की कोशिश की है।

एंड्रॉइड स्टूडियो सेटिंग्स या प्राथमिकताएं (मैक के लिए) -> बिल्ड, निष्पादन, तैनाती -> इंस्टेंट रन पर जाएं

इंस्टेंट रन फ़ंक्शनलिटी को अनचेक करें और फ़ाइल मेनू से ग्रेड फ़ाइलों के साथ सिंक प्रोजेक्ट पर क्लिक करें

अब अपने निर्माण को चलाने ...


यह अब एंड्रॉइड स्टूडियो 4.0+ के लिए वैध नहीं है
जोर्ज ई। हर्नांडेज़

0

कुछ मामलों में आपके पास कुछ categoryफ़ील्ड के साथ मॉडल हो सकता है , यदि आप इसे सभी स्थानों पर रिफैक्ट करेंगे, तो यह इसे प्रकट फ़ाइल में और फिर एक्सएमएल टैग अमान्य हो जाएगा।


0

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

लेकिन कभी-कभी ऐसा होता है जब आपके पास प्रकट होने पर डुप्लिकेट गतिविधि की घोषणा होती है, न केवल मुख्य गतिविधि के लिए, बल्कि बाल गतिविधियों द्वारा भी ट्रिगर किया जाता है।

मेरे साथ ऐसा हुआ, डिफ़ॉल्ट गतिविधि नहीं मिली क्योंकि मेरे पास प्रकट होने पर दोहराव की बाल गतिविधियां हैं, हटाए जाने के बाद, सब कुछ ठीक है



0

मैं यह समझ गया। मैंने गतिविधि घोषणा में गलती से अंतिम कीवर्ड जोड़ दिया। एक बार मैंने इसे हटा दिया सब कुछ काम करता है!

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. Android स्टूडियो में

  2. कॉन्फ़िगरेशन संपादित करने के लिए जाएं।

  3. एप्लिकेशन का चयन करें।

  4. दोपहर का भोजन गतिविधि पथ चुनें।

  5. लागू करें, ठीक है।

    धन्यवाद!!


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