2014-11-05 21 views
5

Zajmuję się tworzeniem aplikacji przy użyciu usługi Fused Location Provider. Podczas próby uruchomienia programu pojawia się błąd "Niestety nazwa aplikacji została zatrzymana". Eclipse nie pokazuje, że są jakieś błędy, ale są błędy w logcat. Nie wiem, jak je naprawić. Pobrałem kod źródłowy here. Pomóż mi zrozumieć, co zrobiłem źle?Wywołanie java.lang.RuntimeException: nie można utworzyć instancji komponentu ComponentInfo {...}: java.lang.ClassNotFoundException: Nie znaleziono klasy

LogCat

11-05 08:31:41.641: E/AndroidRuntime(795): FATAL EXCEPTION: main 
11-05 08:31:41.641: E/AndroidRuntime(795): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.kpbird.fusedlocation/com.kpbird.fusedlocation.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity" on path: DexPathList[[zip file "/data/app/com.kpbird.fusedlocation-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.kpbird.fusedlocation-1, /system/lib]] 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.os.Looper.loop(Looper.java:137) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.main(ActivityThread.java:5103) 
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.reflect.Method.invokeNative(Native Method) 
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.reflect.Method.invoke(Method.java:525) 
11-05 08:31:41.641: E/AndroidRuntime(795): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
11-05 08:31:41.641: E/AndroidRuntime(795): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
11-05 08:31:41.641: E/AndroidRuntime(795): at dalvik.system.NativeStart.main(Native Method) 
11-05 08:31:41.641: E/AndroidRuntime(795): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity" on path: DexPathList[[zip file "/data/app/com.kpbird.fusedlocation-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.kpbird.fusedlocation-1, /system/lib]] 
11-05 08:31:41.641: E/AndroidRuntime(795): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
11-05 08:31:41.641: E/AndroidRuntime(795): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.Instrumentation.newActivity(Instrumentation.java:1061) 
11-05 08:31:41.641: E/AndroidRuntime(795): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128) 
11-05 08:31:41.641: E/AndroidRuntime(795): ... 11 more 
+0

opublikować swój AndroidManifest.xml – Jorgesys

Odpowiedz

2

Ponieważ wyjątek:

ClassNotFoundException: Didn't find class "com.kpbird.fusedlocation.MainActivity" 

do swojej AndroidManifest.xml dodać kompletnego pakietu zostały swoją aktywność jest zlokalizowany:

<activity 
       android:name="com.kpbird.fusedlocation.MainActivity" 

czy koniecznie trzeba poprawna nazwa pakietu zdefiniowana:

package="com.kpbird.fusedlocation" 

Myślę, że wpisałeś niepoprawnie paczkę swojej aplikacji w jakimś miejscu kodu!

enter image description here

+0

Próbowałem tego, ale nadal nie działa. Pracuję nad projektem, który określi pozycję osób w nagłych wypadkach. Jest to dla mnie bardzo ważne. Czy mógłbyś wypróbować ten kod źródłowy na swoim komputerze, aby zrozumieć problem? – user3908478

+0

Tak, mam teraz w moim zaćmieniu, po prostu musiałem dodać referencję biblioteki usług Google Play: |, myślę, że wpisałeś niepoprawnie paczkę w jakimś miejscu z kodu! :( – Jorgesys

+1

Dziękuję za pomoc :). Sprawdzam mój kod ponownie. Mam nadzieję, że znajdę problem. – user3908478

0

Ten sam problem występuje, gdy w tym AndroidManifest odniesienia z:

<meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

i sztywno złym google_play_services_version wartości.

-5

Po spędzeniu dużej ilości czasu na ten problem w końcu otrzymałem rozwiązanie.

Wystarczy usunąć z konstruktora klasy i umieścić go w metodzie klasy onCreate.

100% zostanie rozwiązany.

1

Stało się tak, gdy jeden raz przeniosłem aplikację z jednego katalogu do drugiego, jeśli nie pomaga @Jorgesys's solution, należy rozważyć zmianę nazwy modułu i wyczyszczenie projektu. Uwaga: korzystałem z Android Studio.

Powiązane problemy