2013-07-16 37 views
5

Więc zaimportowałem projekt androida i po chwili zmagań, kiedy w końcu to zrobiłem, skompilowałem aplikację i się zawiesił.Nie można znaleźć klasy MainActivity (importowany projekt)

Jest to plik logcat:

07-16 23:02:23.700: E/AndroidRuntime(23092): FATAL EXCEPTION: main 
07-16 23:02:23.700: E/AndroidRuntime(23092): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{si.dvanadva.evanturist/si.dvanadva.evanturist.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-2.apk 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.os.Looper.loop(Looper.java:137) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.main(ActivityThread.java:5041) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.reflect.Method.invokeNative(Native Method) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.reflect.Method.invoke(Method.java:511) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at dalvik.system.NativeStart.main(Native Method) 
07-16 23:02:23.700: E/AndroidRuntime(23092): Caused by: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-2.apk 
07-16 23:02:23.700: E/AndroidRuntime(23092): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 

widzę z tej linii:

07-16 23:02:23.700: E/AndroidRuntime(23092): Caused by: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-2.apk 

To jest problem ze znalezieniem klasa główną działalność. Ale dlaczego?

To jak ja importowane projektu:

  • Sprowadzone projektu surowy (bez bibliotek)

  • Dodano słoiki do libs folder w projekcie

  • dodany brakujący ścieżkę budowania słoikach

  • Zaimportowane trzy projekty biblioteczne (wykryto je w pierwotnym projekcie)

Te trzy projekty biblioteczne są w tym samym folderze co oryginalny projekt (w przypadku I umieścił je źle lub coś)

Jeśli potrzebujesz dodatkowych informacji proszę dać mi znać, muszę rozwiązać ten problem

Pakiety i ich zawartość:

enter image description here

AndroidManifest pełny kod:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="si.dvanadva.evanturist" 
android:versionCode="7" 
android:versionName="1.1.2" 
android:installLocation="preferExternal"> 

<!-- ZA MAPE --> 
<permission 
    android:name="com.dd.evanturist.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 
<uses-permission android:name="com.dd.evanturist.permission.MAPS_RECEIVE"/> 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <!-- External storage for caching. --> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <!-- My Location --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <!-- Maps API needs OpenGL ES 2.0. --> 
    <uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 
    <!-- End of copy. --> 

<!-- QR STUFF --> 

<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.FLASHLIGHT"/> 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:name=".MyApplication" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/evanturist" 
    android:theme="@style/AppTheme" > 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="AIzaSyDK5zGCwh3awW08BOAwupjU4hw8750WuLM"/> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/evanturist" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".DBActivity"></activity> 
    <activity android:name=".DbTestActivity"></activity> 
    <activity android:name=".PlaceItemActivity"></activity> 
    <activity android:name=".CheckpointsActivity"></activity> 
    <activity android:name=".OptionsActivity"></activity> 
    <activity android:name=".MapDirectionsActivity"></activity> 
    <activity android:name=".VictoryActivity"></activity> 
    <activity android:name=".QrActivity" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"></activity> 
    <activity android:name=".QrPortraitActivity" 
     android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar"></activity> 

</application> 

zakładka eksport na ścieżkach produkcji:

enter image description here

+0

Eclipse z pakietem zgodności? – gunar

+0

@gunar Przepraszamy, nie rozumiem twojego pytania. Używam Zaćmienie, ale co masz na myśli? – Guy

+0

Twoja "MainActivity" rozciąga się od 'Activity' lub z' FragmentActivity'? – gunar

Odpowiedz

3

Problem rozwiązany !!

Cały problem został spowodowany projektem bibliotecznym Usług Google Play. Kiedy ktoś wysłał mi ten projekt, załączył również wszystkie trzy projekty biblioteczne potrzebne do projektu. Następnie dodałem wszystkie trzy projekty biblioteczne bezpośrednio z pliku, który mi wysłał.

Teraz trzeba dodać usługi Google Play z lokalizacji pobierania SDK (nie z innych źródeł zewnętrznych), dlatego właśnie usunąłem bieżące usługi Google Play i dodałem te, które pobrałem z SDK menedżer i problem został rozwiązany.

1

1) przechowywać wszystkich działań w tym samym opakowaniu [powiedzmy com.compname.proj.views].

2) Upewnij się, że w manifeście, atrybut package jest ustawiony na powyższy pakiet [tj. Com.compname.proj.views].

3) W oczywisty, pod wszystkimi tagu aktywności, upewnij androida: atrybut nazwa ma wartości dopasowanie do poniżej wzoru:

android:name=".<your activity class name>" 

Ex: android: name = "SomeActivity."

mojego punktu nie należy używać nazwy pakietu + nazwy klasy aktywności dla deklaracji działania manifestu.

Po upewnieniu się o powyższych punktów, jeśli nadal problem nie ustąpi, a następnie:

  1. notatnika Usuń bin.

  2. Odbuduj swój projekt i uruchom go.

+0

Dziękuję za odpowiedź! Mam trzy pakiety, ale tylko działania z głównego pakietu są zadeklarowane w pliku manifestu. Zmieniłem manifest do deklaracji .activity (usunąłem nazwę pakietu) i nie zadziałało. Próbowałem także usunąć bin i projekt czyszczenia, ale błąd pozostaje ten sam. Sprawdź mój zredagowany oryginalny wpis, w którym zamieściłem zdjęcie wszystkich paczek oraz ich zawartości i pliku manifestu. – Guy

+0

Jeśli korzystasz z poprzedniej wersji apk w swoim urządzeniu/emulatorze, odinstaluj i zainstaluj najnowszą wersję z najnowszej kompilacji. Z rejestru awarii /data/app/si.dvanadva.evanturist-2.apk wskazuje, że istnieją 2 kompilacje (apki) w systemie. Istnieje również możliwość, że ustawienia/konfiguracje projektu nie są jeszcze skuteczne podczas tworzenia aplikacji. Może to wynikać z buforowania właściwości projektu przez środowisko Eclipse. – Chandan

+0

Próbowałem usunąć poprzednią wersję i zainstalować najnowszą kompilację, ale nie działało. Jak mogę rozwiązać problem z 2 kompilacjami i ustawieniami/konfiguracjami? Proszę również sprawdzić moją nową edycję, zamieściłem zrzut ekranu zakładki eksportu na ścieżkach kompilacji, może problem jest tam? – Guy

Powiązane problemy