Próbowałem uruchomić przykładowy kod. Podczas uruchamiania aplikacji w emulatorze Androida 1.5 wystąpiły te błędy… Ktoś ma jakąś wskazówkę…?
BŁĄD z LogCat:
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.s.android.test/com.s.android.test.MainActivity}: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.os.Looper.loop(Looper.java:123)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.main(ActivityThread.java:3647)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.reflect.Method.invokeNative(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.reflect.Method.invoke(Method.java:507)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at dalvik.system.NativeStart.main(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): Caused by: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): ... 11 more
01-13 02:28:08.407: WARN/ActivityManager(112): Force finishing activity com.s.android.test/.MainActivity
Edytuj Ten błąd występuje u większości początkujących, chodzi o to, że musisz dodać wszystkie swoje działania do pliku manifestu.
android
fatal-error
rahul
źródło
źródło
Odpowiedzi:
To jest problem twojej intencji.
Dodaj swój
Activity
w swoimAndroidManifest.xml
.Chcąc rozpocząć nową działalność, należy zarejestrować ją w swoim
AndroidManifest.xml
.źródło
abstract
(popełniłem ten błąd podczas refaktoryzacji i komunikat o błędzie nie pomaga).Być może próbujesz znaleźć widok, przed
onCreate()
którym jest nieprawidłowy.źródło
Istnieje inny sposób uzyskania wyjątku java.lang.RuntimeException: Nie można utworzyć instancji działania Wyjątek ComponentInfo i jest to działanie, które próbujesz uruchomić, jest abstrakcyjne . Raz popełniłem ten głupi błąd i bardzo łatwo go przeoczyć.
źródło
W moim przypadku zapomniałem dodać bibliotekę map Google
Sprawdź również, czy nie brakuje poprzedniej kropki przed ścieżką aktywności
źródło
Dzieje się tak również z powodu tego problemu. Odznaczyłem słoiki, które trzeba było wyeksportować do apk i stało się to samo. Zaznacz słoiki, które ma działać Twoja aplikacja.
źródło
Z tym problemem też się spotkałem, ale w nieco inny sposób. Oto mój scenariusz:
Szczegóły aplikacji:
<uses-library android:name="com.google.android.maps" />
w manifestach zarówno projektu biblioteki, jak i mojego projektu głównego (może to nie być konieczne w bibliotece?)Jednak nadal napotkałem błąd opisany w oryginalnym poście i nie mogłem go usunąć. Problem był jednak nieco inny pod jednym względem:
Jak to naprawiłem:
Sam ten krok nie rozwiązał problemu
Po dodaniu słoika do ścieżki kompilacji zmieniłem kolejność na karcie Ścieżka budowania Java> Zamów i eksport - ustawiłem JAR na pierwszy element na liście (był to ostatni po elementach / src i / gen ).
Następnie odbudowałem i ponownie wdrożyłem aplikację na moim urządzeniu - działała zgodnie z oczekiwaniami po nowej instalacji. Dla pewności odinstalowałem go ponownie 2-3 razy i ponownie zainstalowałem - nadal działał zgodnie z oczekiwaniami.
Może to być całkowity błąd początkującego, ale spędziłem sporo czasu na przekopywaniu się przez posty i mój kod, aby to rozgryźć, więc mam nadzieję, że może to być pomocne dla kogoś innego. Może nie rozwiązać wszystkich sytuacji, ale w tym konkretnym przypadku okazało się, że jest to rozwiązanie mojego problemu.
źródło
To może nie pasować do rzeczywistego pytania, ale w moim przypadku próbowałem wdrożyć Kotlin i pominąłem
apply plugin: 'kotlin-android'
. Błąd wystąpił, ponieważ nie mógł rozpoznać MainActivity jako pliku .kt.Mam nadzieję, że to komuś pomoże.
źródło
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION
do main build.gradleTen błąd może być również ostateczną oznaką głupiej pomyłki (jak wtedy, gdy mam na myśli kaszel, na przykład mój przyjaciel, który pokazał mi kiedyś swój kod), gdy próbują wykonać kod poza metodą, taką jak próba zrobienia tego :
zamiast tego:
źródło
Pozbyłem się tego problemu, usuwając folder
Bin
iGen
z projektu (który automatycznie wraca, gdy projekt się buduje), a następnie czyszcząc projekt z -> Menu -> Projekt -> wyczyść.Dzięki.
źródło
W moim przypadku nie ustawiłem
setContentView(R.layout.main);
Jeśli tworzysz nową klasę, nie myl się, aby ustawić to w
onCreate(Bundle savedInstanceState)
metodzie.Zrobiłem ten głupi błąd kilka razy.
źródło
Po prostu wyczyść działający projekt lub uruchom ponownie zaćmienie. Następnie uruchom swój projekt. to będzie działać.
źródło
Dla mnie ciąg mojego pakietu
AndroidManifest.xml
był nieprawidłowy (skopiowany z samouczka). Upewnij się, że ciąg znaków pakietu w tym pliku jest taki sam, jak w miejscu, w którym znajduje się Twoja główna aktywność, npŁatwym sposobem na to jest otwarcie pliku AndroidManifest.xml na karcie „Manifest” i wpisanie go w polu tekstowym obok opcji Pakiet lub użycie przycisku Przeglądaj.
Również ciąg znaków pakietu dla mojej aktywności był nieprawidłowy, np
Otrzymałem (głupio) ten sam błąd kilka tygodni później, kiedy zmieniłem nazwę mojego pakietu. Jeśli to zrobisz, upewnij się, że aktualizujesz również
AndroidManifest.xml
plik.źródło
Ok, mam dość duże doświadczenie na iPhonie, ale nowi na Androidzie. Mam ten problem, gdy miałem:
ten wiersz kodu powyżej:
Może jestem pozbawiony snu: P
źródło
Niedawno spotkałem się z tym podczas ponownej instalacji Eclipse. Okazuje się, że mój poziom zgodności kompilatora został ustawiony na Java 1.7, a projekt wymagał 1.6.
W Eclipse: Projekt -> Właściwości -> Kompilator Java -> Zgodność z JDK
źródło
Mam ten problem i naprawiłem go, ustawiając właściwość „tryb uruchamiania” działania.
źródło
Inną przyczyną tego problemu może być brakująca biblioteka.
Przejdź do Właściwości -> Android i sprawdź, czy poprawnie dodajesz biblioteki
źródło
Miałem ten sam problem, ale moja aktywność została zadeklarowana w pliku Manifest z poprawną nazwą.
Mój problem polegał na tym, że nie musiałem importować bibliotek innych firm do folderu „libs” i potrzebowałem odniesienia do nich w moim projekcie (kliknięcie prawym przyciskiem myszy, właściwości, ścieżka budowania Java, biblioteki, dodaj słoik ...).
źródło
Może się tak zdarzyć, jeśli klasa aktywności znajduje się w domyślnym pakiecie. Naprawiłem to, przenosząc klasę aktywności do nowego pakietu. i zmieniając plik manifest.xml
przed
po
źródło
W moim przypadku próbowałem zainicjować komponenty (UI) jeszcze przed
onCreate
wywołaniem działania.Upewnij się, że składniki interfejsu użytkownika są zainicjowane / połączone w
onCreate
metodzie posetContentView
NB: To mój pierwszy błąd podczas nauki programowania na Androida.
źródło
Dla mnie to było inne niż którekolwiek z powyższych,
Czynność została uznana za abstrakcyjną, dlatego podając błąd. Po usunięciu zadziałało.
Wcześniej
Po usunięciu
źródło
Zdarza mi się to dość często podczas korzystania z NDK. Zauważyłem, że konieczne jest wykonanie „Czyszczenia” w Eclipse po każdym wykonaniu
ndk-build
. Mam nadzieję, że to pomoże każdemu :)źródło
Ten błąd występuje również, gdy używasz,
ActionBarActivity
ale przypisanoAppCompat
styl inny niż .Aby to naprawić, po prostu ustaw rodzica w stylu aplikacji na
Theme.AppCompat
taki:źródło
Kliknij prawym przyciskiem myszy projekt> właściwości> android> i spróbuj z inną wersją Androida, wcześniej robiłem z Androidem 4.4, a potem zmieniłem na Androida 4.3 i zadziałało!
źródło
Miałem ten sam problem (nie można utworzyć wystąpienia działania):
PIERWSZY powód:
Miałem dostęp
przed
Tak więc, należy najpierw otworzyć kamerę, a następnie uzyskać dostęp do parametrów.
DRUGI powód: zadeklaruj swoją aktywność w pliku manifestu
TRZECI powód: zadeklaruj uprawnienia do aparatu w pliku manifestu.
Mam nadzieję że to pomoże
źródło
W moim przypadku próbowałem osadzić Facebook SDK i miałem zły identyfikator aplikacji ; więc błąd się pojawiał. W swoim pliku manifestu powinieneś mieć odpowiednie metadane:
źródło
Jeśli masz zainstalowany Android Studio 2.3.3 i Android Studio 3.0.0, przełączanie między dwoma programami do programowania spowoduje ten błąd. Dzieje się tak, ponieważ istnieją sytuacje, w których klasy obsługiwane w jednym programie nie są obsługiwane przez drugi i odwrotnie. Ważne jest, aby zachować spójność, w jakiej wersji Android Studio jest używana do tworzenia projektu.
źródło
Jak zasugerował
djjeck
komentarz w tej odpowiedzi, nie mogłem wstawićpublic
modyfikatora dla mojej klasy.Powinno być
Może pomóc niektórym takim jak ja.
źródło
Wypróbowałem wszystkie powyższe rozwiązania, ale nic dla mnie nie działa. po prostu dodaję
extend
aktywność zamiastAppCompatActivity
i działa dobrze.używany
zamiast
nie wiem, jaki to był prawdziwy problem.
źródło
Zdarzyło mi się to, gdy próbowałem uruchomić
Activity
na 2.2, który używał importu z Honeycomb, który nie jest dostępny w starszych wersjach Androida i nie jest również uwzględniony w pakiecie wsparcia v4.źródło
Twoja nowa aktywność dodaj
AndroidManifest.xml
polubienie".NewActivity"
źródło