「ランチャーアクティビティが見つかりません!」とはどういう意味ですか。


82

私はAndroidの簡単なプログラムを書いていますが、これらのエラーが発生しないので、それらが何であるかわかりません。私のプログラムは正しいですが、出力されません。私はそれがこれらの2つの線のためだと思います:

[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
それらは常にそのように見えます。それらはアプリケーションのクラスではなく、発生しているアクションです。同様に、他のアクションに対してアクティビティを起動させることができます。たとえば、<action android:name = "android.intent.action.VIEW"> </ action> <category android:name = "android.intent.category.DEFAULT"> </ category> <category android:name = "android .intent.category.BROWSABLE "> </ category>
tribe84 2011年

「基本的に」は、Androidがアクティビティをどうするかを決定するのに役立ちます。ドキュメントのインテントセクションを参照してください
dbryson 2011年

2
この属性の値をandroid:name="ExampleActivity"適切なアクティビティメインクラスに変更することを忘れないでください。
オマール

51

1つのインテントフィルタータグに複数のアクションタグがある場合も、同じエラーが発生します。


反対票を受け取りました。この症状が修正されたかどうかを誰かが確認できますか?それはいつも私にとってバグのように感じました。
Gusdor 2016年

24

Gusdorが上で述べたように、「単一のインテントフィルタータグ内の複数のアクションタグも同じエラーを引き起こします。」(彼にクレジットを与えてください!私はこれのためにGusdorにキスすることができました!)
私はこの事実のためのドキュメントを見つけませんでした!新しい(USB)アクションを追加し、賢いので、同じインテントフィルターにまとめました。そしてそれは打ち上げを破った。Gusdorが言ったように、1つのインテントフィルター、1つのアクション!どうやら、各アクションは独自のインテントフィルターに入れる必要があります。
このように見えるはずです...

<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>

私がこれをしたとき、WAZOO!出来た!


私はこれを探していました
Vijay

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

これは、アプリがランチャーから開いたときにデフォルトとして起動するAndroidのアクティビティを指定しなかったことを意味します。アプリの起動時にデフォルトとして機能させたいアクティビティのマニフェストにインテントフィルターを追加する必要があります。

詳細については、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 2013年

2

これと同じ問題が発生しましたが、xmlタグに「/」ではなく「\」が含まれていることがわかりました。それでも同じエラーが発生しましたが、構文の問題が原因でした。


2

Android開発用にGoogleが提供する標準のEclipseIDEを使用している場合は、新しいアクティビティを作成するときに[ランチャーアクティビティ]チェックボックスをオンにすることができます。以下をご覧ください。

ここに画像の説明を入力してください


2

Eclipseでこれを実行できるのはいつですか。

ここに画像の説明を入力してください

ただし、Androidマニフェストファイル内で対応する変更を行うことをお勧めします。


1

これをAndroidManifest.xmlファイルのアプリケーションタグに追加するだけです

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

また、uses-sdkタグを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は、アプリケーションの起動時に使用される最初のアクティビティを決定します。Launcherは、アプリケーションダッシュボードにアプリケーションを追加します。

それらがすでにあり、それでもエラーメッセージが表示される場合は、インテントフィルタで複数​​のカテゴリまたはアクションを使用している可能性があります。インテントフィルターでは、そのようなタグは1つしか存在できません。別のカテゴリを追加するには、次のように別のインテントフィルタに入れます

        <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

最初に表示するアクティビティにランチャーインテントフィルターが含まれていないため、アプリケーションの起動時に開始するアクティビティがわかりません。これは、manifest.xmlにランチャーフィルターインテントを含めることでシステムに通知するためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.