Właśnie zaktualizowałem system Android Studio do wersji 0.2.8 i pojawia się komunikat o błędzie „Nie znaleziono działania domyślnego”, gdy próbuję edytować konfiguracje uruchamiania.
Po uruchomieniu Android Studio pojawia się ten błąd „Dostęp jest dozwolony tylko z wątku wysyłania zdarzeń”
Aktywność, której używam, jest działaniem fragmentarycznym.
Do tej pory próbowałem odbudować i unieważnić cache / restart. Oba były bezużyteczne.
Daj mi znać, co mogę zrobić, aby rozwiązać problem.
android
android-studio
android-fragmentactivity
Vipassana Vijayarangan
źródło
źródło
Odpowiedzi:
W Android Studio kliknij prawym przyciskiem myszy projekt i wybierz Otwórz ustawienia modułu . Następnie przejdź do zakładki Źródła w swoim module, znajdź folder src , kliknij go prawym przyciskiem myszy i zaznacz jako Źródła (kolor niebieski).
EDYCJA: W późniejszych wersjach Android Studio nie ma karty źródeł, ale zamiast tego możesz edytować plik build.gradle : https://stackoverflow.com/a/22028681/1101730 (dzięki za komentarz Josh)
źródło
Czy dodałeś
ACTION_MAIN
filtr intencji do swojej głównej aktywności? Jeśli tego nie dodasz, Android nie będzie wiedział, które działanie ma zostać uruchomione jako główne działanie.dawny:
<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>
źródło
"com.package.name.MyActivity"
może zostać pominięta, jeśli cały<intent-filter>
element znajduje się wewnątrz<activity>
elementu, który odpowiada Twojej MyActivity w Twojej przestrzeni nazw.Filter
tym wszystkie nazwane zmiennefilter
i najwyraźniej Android Studio zdecydowało się dołączyćAndroidManifest.xml
i<intent-*filter*>
. Ta odpowiedź sprawiła, że dwukrotnie sprawdziłemAndroidManifest.xml
i pomogła mi znaleźć błąd =)Miałem ten sam problem podczas importowania projektu do Android Studio, prawdopodobnie spowodowany tym, że projekt został opracowany na wcześniejszej wersji Android Studio niż obecnie zainstalowana na moim komputerze.
Rozwiązaniem tego problemu był po prostu wybór:
File -> Invalidate Caches / Restart...
a następnie wybierając
Invalidate and Restart
.źródło
Jeśli nie masz karty i zacząłeś od pustej aktywności, spróbuj tego. Poniżej znajduje się przykładowy kod:
<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>
Teraz przejdź do pliku AndroidManifest.xml. Następnie skopiuj filtr intencji z tego kodu. Spójrz na swój plik manifestu naprawdę dobrze i wklej filtr intencji w dokładnym miejscu w powyższym kodzie. (po części .yourActivityName> manifestu). Mam nadzieję, że to pomogło.
źródło
Jeśli nadal pojawia się komunikat o błędzie „Nie znaleziono działania domyślnego” podczas próby edytowania konfiguracji uruchamiania, nawet po wykonaniu:
Unieważnij pamięć podręczną i uruchom ponownie .
Następnie spróbuj usunąć folder Ustawienia / Preferencje:
/< USER_HOME_DIR >/.AndroidStudioPreview3.2
lub na komputerze Mac:
/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2
źródło
Kiedy kliknąłem „Otwórz ustawienia modułu”, nie było zakładki „Źródło” , myślę, że została ona usunięta z nowszych wersji Android Studio (jestem na 0.8.14). Więc zamiast tego musiałem to zrobić:
Dodaj te linie do
build.gradle
pliku wewnątrzandroid { ... }
bloku:android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }
Po edycji pliku kliknij Narzędzia> Android> Synchronizuj projekt z plikami Gradle .
Podziękowania dla tej odpowiedzi i tego komentarza .
źródło
Podążanie za mną załatwiło sprawę. Z Run -> Edytuj konfigurację .
źródło
Mój problem sprowadził się do dodatkowego błędu, który czasami pojawiał się, stwierdzając
Manifest Merger failed with multiple errors in Android Studio
To, co ostatecznie spowodowało mój problem, to fakt, że było wiele manifestów (manifest debugowania i manifest w nowym module, który właśnie zaimportowałem) iz tego powodu nie łączyły się one poprawnie. Po zapoznaniu się z tą odpowiedzią udało mi się przeanalizować scalony manifest, znaleźć przyczynę problemu i go naprawić.
źródło
przydarzyło mi się to, ponieważ wykorzystałem ścieżki w manifeście. zmieniono:
<intent-filter> <action android:name="ANDROID.INTENT.ACTION.MAIN"/> <category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER"/> </intent-filter>
do
<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter>
i zostało to naprawione
źródło
Dzisiaj natknąłem się na ten sam problem i przeglądałem tutaj odpowiedzi.
Dla mnie różnica polegała na tym, że wczoraj działało dobrze, więc pomyślałem, że tak naprawdę nie może to być problem z konfiguracją, ani konfiguracja, ani wersja Android Studio nie uległa zmianie.
Na szczęście próbowałem ponownie uruchomić Android Studio przed wypróbowaniem innych odpowiedzi i na szczęście to rozwiązało problem.
Tak więc dla wszystkich ludzi, którzy napotkają to: pierwszą rzeczą do wypróbowania jest ponowne uruchomienie Android Studio i tylko jeśli to nie rozwiąże problemu, wypróbuj inne odpowiedzi tutaj.
źródło
Właśnie doświadczyłem tego samego błędu w Android Studio 1.5.1. i właśnie znalazłem źródło problemu. Nie jestem pewien, czy przyczyną był błąd ludzki, czy dziwna usterka w działaniu IDE, ale żadne z istniejących pytań StackOverflow na ten temat nie wydawało się nic na ten temat, więc pomyślałem, że i tak opublikuję to jako odpowiedź.
Dla mnie, jeden z członków mojego zespołu lub samo IDE, zmieniło wpis manifestu działań programu uruchamiającego, przez co wyglądał tak:
<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>
Chociaż w rzeczywistości powinno to wyglądać tak:
<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>
Dlatego sprawdź dwukrotnie, potrójnie, czterokrotnie format swojej aktywności programu uruchamiającego w manifeście, a być może uda Ci się zaoszczędzić trochę czasu.
Mam nadzieję że to pomoże.
EDYCJA: Zdecydowanie sugeruję, aby ludzie nie korzystali z odpowiedzi, które sugerują ręczne wybieranie aktywności programu uruchamiającego w opcjach konfiguracyjnych modułu, ponieważ spowodowało to, że aplikacja nie była już wyświetlana na liście zainstalowanych aplikacji zarówno na Samsung Galaxy S5 Neo i Samsung Galaxy S6 (przynajmniej dla mnie).
źródło
Aplikacja prasowa -> Edytuj konfiguracje
Następnie zmień wartość w Uruchom na „Nic”
źródło
Upewnij się w manifeście, że nazwa pakietu jest taka sama jak Twoja główna aktywność
źródło
W Android Studio przełącz się na perspektywę projektu (nie na Androida).
Upewnij się, że Twój projekt jest zgodny z domyślną strukturą wtyczki gradle (tj. Katalog_projektu / app / src / main / java ... )
Usuń wszystkie foldery i podfoldery kompilacji , które widzisz.
Na pasku narzędzi kliknij Build -> Clean Project , a następnie Build -> Rebuild Project .
Spróbuj uruchomić projekt.
źródło
Możesz sprawić, by Android Studio nie narzekał, przechodząc do menu „Edytuj konfiguracje” (dotknij „Shift” trzy razy, wpisz „Edytuj konfiguracje”), a następnie zmień Opcje uruchamiania> Uruchom na „Nic”.
Prawdopodobnie dodam ogólną aktywność zawierającą instrukcje, aby uniknąć nieporozumień.
źródło
W moim przypadku zadziałało, gdy usunąłem folder .idea z projektu (Project / .ida) i ponownie otworzyłem Android Studio.
źródło
To rozwiązało błąd w moim przypadku.
źródło
Jeśli zmieniłeś nazwę katalogów (strukturę klasy), na przykład com.dir.sample na com.dir.sample1, nie zapomnij zmienić pakietu com.dir.sample na com.dir.sample1.
źródło
Zmodyfikuj plik „Workspace.xml” (naciśnij Ctrl + Shft + R, aby go przeszukać)
Zmień nazwę działania na nazwę pakietu
Pamiętaj, aby zmienić „name =„ USE_COMMAND_LINE ”na value =„ false ”
Załaduj ponownie projekt
Gotowe!
źródło
Dla takich jak ja, którzy mieli problem ze znalezieniem karty „Źródła”:
Tutaj musisz oznaczyć swój folder „src” na niebiesko (najpierw kliknij Oznacz jako: Źródło , a następnie w swoim folderze src ) i gotowe.
źródło
Możesz wykonać dwa kroki:
źródło
Wypróbowałem wszystkie rozwiązania, ale w ogóle nie działały. niż próbowałem wyłączyć natychmiastowe uruchamianie w moim studiu Android.
Przejdź do ustawień lub preferencji Android Studio (dla MAC) -> Kompilacja, wykonanie, wdrożenie -> Natychmiastowe uruchamianie .
odznacz funkcję Instant run, a następnie kliknij zsynchronizuj projekt z plikami gradle w menu plików
teraz uruchom swoją kompilację ...
źródło
W niektórych przypadkach możesz mieć model z jakimś
category
polem, jeśli zrefaktorujesz go we wszystkich miejscach, może to zrobić w pliku manifestu i wtedy tag xml stanie się nieważny.źródło
Dla tego rodzaju przypadku może wystąpić wiele możliwości (Nie znaleziono domyślnej aktywności) Jeśli cały kod jest w porządku, szczególnie na Manifest, wystarczy unieważnić Cache i ponownie uruchomić studio,
Ale czasami zdarza się, że masz zduplikowaną deklarację działania w manifeście, nie tylko dla działania głównego, jest również wyzwalana przez działania podrzędne.
Stało się to ze mną, nie znaleziono działania domyślnego, ponieważ mam zduplikowane działania podrzędne w manifeście, po usunięciu tego wszystko jest w porządku
źródło
Sprawdź, czy w
AndroidManifest.xml
pliku nie ma zduplikowanego tagu .źródło
Rozgryzłem to. Pomyłkowo dodałem ostatnie słowo kluczowe w deklaracji aktywności. Po usunięciu wszystko działa!
public class SplashActivity extends AppCompatActivity { ... }
źródło
W Android Studio
Przejdź do edycji konfiguracji.
Wybierz aplikację.
wybierz ścieżkę aktywności obiadowej.
zastosuj, OK.
Dzięki!!
źródło
Domyślna nazwa działania została zmieniona (jak SplashActivity -> SplashActivity1) i działa dla mnie
źródło