Piszę prosty program na Androida i nie otrzymuję tych błędów, nie wiem, co to za. Mój program jest poprawny, ale nie pokazuje wyjścia. Myślę, że to z powodu tych dwóch linii:
[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!
android:name="ExampleActivity"
na odpowiednią klasę główną aktywności.Wiele tagów działań w jednym tagu filtra intencji również spowoduje ten sam błąd.
źródło
Jak powiedział Gusdor powyżej, „Wiele tagów działań w jednym tagu filtra intencji spowoduje również ten sam błąd”. (Daj mu uznanie! Mogę po prostu pocałować za to Gusdora!)
Nie znalazłem żadnych dokumentów na ten fakt! Dodałem nową akcję (USB) i będąc sprytnym, umieściłem ją w tym samym filtrze intencji. I to zepsuło start. Jak powiedział Gusdor, jeden filtr intencji, jedno działanie! Najwyraźniej każde działanie powinno mieć swój własny filtr intencji.
To powinno wyglądać tak...
<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>
Kiedy to zrobiłem, WAZOO! zadziałało!
źródło
Czy masz skonfigurowane działanie, które ma być uruchomione podczas uruchamiania aplikacji?
Odbywa się to w pliku Manifest.xml, na przykład:
<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>
źródło
Sprawdź swój plik manifest.xml. Upewnij się, że masz tam kategorię 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>
źródło
Oznacza to, że nie określono działania dla systemu Android, które ma być uruchamiane jako domyślne, gdy aplikacja otwiera się z programu uruchamiającego. Musisz dodać filtr intencji w manifeście dla działania, które chcesz zachować jako domyślny podczas uruchamiania aplikacji.
Przeczytaj http://developer.android.com/guide/topics/intents/intents-filters.html#ccases, aby uzyskać więcej informacji.
źródło
Naprawiłem problem, dodając blok aktywności w tagu aplikacji. Stworzyłem projekt za pomocą kreatora, nie wiem, dlaczego mój plik AdroidManifest.xml nie zawierał bloku aplikacji? Dodałem blok aplikacji:
<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>
I otrzymuję żądane wyjście na emulatorze.
źródło
Jak już wspomniano, ten błąd jest prawdopodobnie spowodowany brakiem lub nieprawidłowym plikiem
intent-filter
.Chciałbym tylko dodać, że ten błąd pojawia się również, jeśli ustawisz
android:exported="false"
aktywność programu uruchamiającego (w manifeście).źródło
Miałem ten sam problem i okazuje się, że w tagu xml miałem znak „\” zamiast „/”. Nadal dawał ten sam błąd, ale tylko z powodu problemu ze składnią.
źródło
Jeśli używasz standardowego środowiska eclipse IDE dostarczonego przez Google do programowania w systemie Android, możesz zaznaczyć pole wyboru „Aktywność programu uruchamiającego” podczas tworzenia nowego działania. Proszę znaleźć poniżej:
źródło
W Eclipse, kiedy można to zrobić:
Ale lepiej jest wprowadzić odpowiednie zmiany w pliku manifestu Androida.
źródło
po prostu dodaj to do tagu aplikacji w pliku AndroidManifest.xml
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
a także edytuj tag uses-sdk z android: targetSdkVersion = "16" na 17
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />
źródło
Brakowało Ci określania elementów filtru intencji w pliku manifestu. Plik manifestu to:
<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>
Dodaj i sprawdź to poprawnie. Mam nadzieję, że to pomoże ...
źródło
W manifestie rozróżniana jest wielkość liter, więc porównaj te wiersze pod kątem niezgodności wielkości liter, zwłaszcza słowa
MAIN
w:<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
źródło
Możesz dodać program uruchamiający do aktywności w edytorze wizualnym manifestu zaćmienia:
źródło
MAIN zadecyduje o pierwszym działaniu, które zostanie użyte, gdy aplikacja zostanie uruchomiona. Launcher doda aplikację w panelu aplikacji.
Jeśli już je masz i nadal otrzymujesz komunikat o błędzie, ale może to dlatego, że możesz używać więcej niż więcej kategorii lub akcji w filtrze intencji. W filtrze intencji może istnieć tylko jeden taki tag. Aby dodać kolejną kategorię, umieść ją w innym filtrze intencji, jak poniżej
<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>
źródło
Nie włączyłeś filtra intencji Launchera do działania, które chcesz wyświetlić jako pierwsze, więc nie wie, które działanie ma się rozpocząć po uruchomieniu aplikacji, w tym celu poinformuj system, dołączając intencję filtra programu uruchamiającego do manifest.xml
źródło