2012-02-13 8 views
5

で宣言されているにもかかわらず、私はこのようなのmanifest.xmlファイルで定義された主な活性を有し、見つかりました実デバイスまたはエミュレータコンソールに次のメッセージが表示されます。 ランチャーのアクティビティが見つかりませんませんランチャーの活動は私のアプリではmanifest.xmlに

これは何故ですか?

答えて

15

インテントフィルターを2つの別々のフィルターに分割します。このようにミックスすると、アンドロイドは2つのうちの1つがランチャーフィルタであると判断しません。

<activity 
    android:name=".MainActivity" 
    android:label="@string/guide_activity" > 

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

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

     <meta-data android:name="android.app.searchable" 
       android:resource="@xml/searchable"/> 
</activity> 
+0

アンドロイドアプリへの意図を送信し、それが1かどうかをテストするためにインテントフィルタをチェックすると答えてくれてありがとうは、それが働いていたが、何がその理由である、 –

+2

を分割することなく動作するようになっていますすべてのルールに一致します。それが本当であるときだけ、意図は実際に届けられるでしょう。この場合、起動インテントがアクション「SEARCH」と「MAIN」の両方に一致するかどうかがチェックされます。これは当てはまりませんので、意図は正しく配信されません。分割すると、すべてのルールが一致するインテントフィルタが1つ存在し、メインインテントが適切に配信されます。 –

+0

ありがとう、私はこのドキュメントを奇妙に読んだことはないと信じています。 –

関連する問題