इसका क्या मतलब है "कोई लॉन्चर गतिविधि नहीं मिली!"


82

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

[2005-01-06 19:56:38 - my_Android] No Launcher activity found!
[2005-01-06 19:56:38 - my_Android] The launch will only sync the application package on the device!

जवाबों:


158

यहाँ AndroidManifest.xml से एक उदाहरण दिया गया है। लॉन्च पर आप जिस गतिविधि को शुरू करना चाहते हैं, उसके लिए आपको मुख्य फ़िल्टर में MAIN और LAUNCHER निर्दिष्ट करना होगा

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="ExampleActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

6
वे हमेशा ठीक वैसा ही दिखेंगे, वे आपके अनुप्रयोग में वर्ग नहीं हैं, वे ऐसे कार्य हैं जो हो रहे हैं। इसी तरह आप अन्य कार्यों पर गतिविधि आग लगा सकते हैं। उदाहरण के लिए <एक्शन एंड्रॉइड: नाम = "android.intent.action.VIEW"> </ कार्रवाई> <श्रेणी एंड्रॉइड: नाम = "android.intent.category.DEFAULT"> </ श्रेणी> <श्रेणी एंड्रॉइड: नाम = "एंड्रॉइड .intent.category.BROWSABLE "> </ श्रेणी>
tribe84

"मूल रूप से" एंड्रॉइड यह तय करने में मदद करता है कि गतिविधि के साथ क्या करना है। डॉक्स का इंटेंट सेक्शन देखें
dbryson

2
android:name="ExampleActivity"उचित गतिविधि मुख्य वर्ग के लिए इस विशेषता के मूल्य को संशोधित करने के लिए मत भूलना ।
उमर

51

एकल इरादे-फ़िल्टर टैग में एकाधिक क्रिया टैग भी उसी त्रुटि का कारण बनेंगे।


मुझे एक नीचता मिली। क्या कोई इस लक्षण की पुष्टि कर सकता है? यह हमेशा मेरे लिए एक बग की तरह लगा।
गूसडर

24

जैसा कि गस्डोर ने ऊपर कहा, "एक ही इरादे-फ़िल्टर टैग में कई एक्शन टैग भी उसी त्रुटि का कारण बनेंगे।" (उसे श्रेय दें! मैं सिर्फ इस बात के लिए Gusdor चुंबन सकता है!)
मैं इस तथ्य के लिए कोई भी दस्तावेज़ नहीं मिला! मैंने एक नया (USB) एक्शन जोड़ा था और होशियार होने के कारण, मैंने इसे उसी इरादे से फिल्टर किया। और इसने लॉन्च को तोड़ दिया। जैसे गुसादोर ने कहा, एक आशय फिल्टर, एक क्रिया! जाहिरा तौर पर प्रत्येक कार्रवाई को अपने इरादे के फिल्टर में जाना चाहिए।
इसे ऐसा दिखना चाहिए...

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

जब मैंने ऐसा किया, वाज़ू! इसने काम कर दिया!


मैं इसके लिए देख रहा था
विजय

17

क्या आपके पास कोई गतिविधि है जो एप्लिकेशन शुरू होने पर लॉन्च की गई गतिविधि हो सकती है?

यह आपके Manifest.xml फ़ाइल में किया जाता है, कुछ इस तरह से:

    <activity android:name=".Main" android:label="@string/app_name"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

8

अपना मैनिफ़ेस्ट चेक करें। Xml सुनिश्चित करें कि आपके पास वहां LAUNCHER श्रेणी है।

<activity android:name=".myActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
    </activity>

6

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

अधिक जानकारी के लिए http://developer.android.com/guide/topics/intents/intents-filters.html#ccases पढ़ें ।


5

मैंने एप्लिकेशन टैग में गतिविधि ब्लॉक जोड़कर समस्या को ठीक किया। मैंने विज़ार्ड का उपयोग करके प्रोजेक्ट बनाया, मुझे नहीं पता कि मेरे AdroidManifest.xml फ़ाइल में एप्लिकेशन ब्लॉक क्यों नहीं था? मैंने एप्लिकेशन ब्लॉक जोड़ा:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".ToDoListActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

और मुझे एमुलेटर पर वांछित आउटपुट मिलता है।


5

जैसा कि बताया गया है, यह त्रुटि गुम या गलत होने की संभावना है intent-filter

मैं यह जोड़ना चाहूंगा कि यदि आप android:exported="false"अपनी लॉन्चर गतिविधि (मेनिफ़ेस्ट में) सेट करते हैं तो यह त्रुटि भी दिखाई देती है ।


यह वास्तव में मेरी समस्या थी।
bvd

2

मुझे भी यही समस्या थी और यह पता चला कि मेरे पास xml टैग में '/' के बजाय '\' था। यह अभी भी एक ही त्रुटि है, लेकिन सिर्फ एक वाक्यविन्यास समस्या के कारण।


2

यदि आप एंड्रॉइड विकास के लिए Google द्वारा प्रदान किए गए मानक ग्रहण आईडीई का उपयोग कर रहे हैं, तो आप एक नई गतिविधि बनाते समय "लॉन्चर एक्टिविटी" चेक-बॉक्स की जांच कर सकते हैं। कृपया नीचे देखें:

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


2

ग्रहण में ऐसा कब कर सकते हैं:

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

लेकिन यह बेहतर है कि Android मेनिफ़ेस्ट फ़ाइल के अंदर संबंधित परिवर्तन करें।


1

बस इसे Androidmanifest.xml फ़ाइल में अपने एप्लायंस टैग में जोड़ें

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

और Android से उपयोग-एसडीके टैग को भी संपादित करें: targetSdkVersion = "16" से 17

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

1

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

<application android:label="@string/app_name" android:icon="@drawable/icon">
    <activity android:name="Your Activity Name"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

इसे सही ढंग से जोड़ें और जांचें। आशा है यह मदद करेगा ..


1

प्रकट केस संवेदी है, इसलिए किसी भी मामले बेमेल विशेष रूप से शब्द के लिए इस लाइनों की तुलना कृपया MAINमें:

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


1

MAIN उस पहली गतिविधि को तय करेगा जिसका उपयोग अनुप्रयोग शुरू होने पर किया जाएगा। लॉन्चर एप्लिकेशन डैशबोर्ड में एप्लिकेशन जोड़ देगा।

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

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

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

        <!--
             TODO - Add necessary intent filter information so that this
                Activity will accept Intents with the
                action "android.intent.action.VIEW" and with an "http"
                schemed URL
        -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <data android:scheme="http" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>

0

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

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