2013-07-16 20 views
5

Così ho importato un progetto Android e dopo aver lottato per un po 'quando ho finito, ho compilato l'app e si è bloccato.Impossibile trovare la classe MainActivity (progetto importato)

Questo è il file 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) 

posso vedere da questa linea:

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 

Che ci sia un problema trovare di classe MainActivity. Ma perché?

Ecco come ho importato il progetto:

  • importato progetto crudo (senza librerie)

  • vasetti Aggiunto ai movimenti di liberazione cartella nel progetto di

  • Aggiunto percorso di costruzione mancante per barattoli

  • Importati tre progetti di libreria (il progetto originale li ha rilevati)

Questi tre progetti di libreria sono tutti nella stessa cartella del progetto originale (nel caso in cui ho messo li sbagliato o qualcosa del genere)

Se avete bisogno di ulteriori informazioni per favore fatemelo sapere, ho bisogno di risolvere questo problema

pacchetti e il loro contenuto:

enter image description here

AndroidManifest codice completo:

012.
<?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> 

scheda Esporta in percorsi di build:

enter image description here

+0

Eclipse con pacchetto di compatibilità? – gunar

+0

@gunar Scusa, non capisco la tua domanda. Sto usando Eclipse, ma cosa intendi? – Guy

+0

Il tuo 'MainActivity' si estende da' Activity' o da 'FragmentActivity'? – gunar

risposta

3

Problema risolto !!

L'intero problema è stato causato dal progetto di libreria dei servizi di Google Play. Quando qualcuno mi ha inviato questo progetto, ha anche allegato tutti e tre i progetti di biblioteca necessari per il progetto. Ho quindi aggiunto tutti e tre i progetti di libreria direttamente dal file che mi ha inviato.

Ora il fatto è che devi sempre aggiungere i servizi di riproduzione di Google dal percorso di download dell'SDK (non da qualsiasi altra fonte esterna), quindi ho appena rimosso gli attuali servizi di riproduzione di Google e aggiunto quelli che ho scaricato con l'SDK manager e il problema è stato risolto.

1

1) Tenere tutte le attività previste nello stesso pacchetto [diciamo com.compname.proj.views].

2) Verificare in manifest, l'attributo del pacchetto è impostato sul pacchetto sopra [i.e com.compname.proj.views].

3) manifesta, sotto tutti i tag attività, assicurarsi Android: attributo name ha valori corrispondenti a meno del modello:

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

Es: android: name = "SomeActivity."

Il mio punto non utilizzare il nome del pacchetto + il nome della classe di attività per la dichiarazione di attività manifest.

volta che siete sicuri sui punti di cui sopra, se ancora il problema persiste, allora:

  1. Elimina cartella bin.

  2. Ricostruisci il tuo progetto ed esegui.

+0

Grazie per la risposta! Ho tre pacchetti ma solo le attività dal pacchetto principale sono dichiarate nel file manifest. Ho cambiato la dichiarazione manifest in .activityname (ho rimosso il nome del pacchetto) e non ha funzionato. Ho anche provato a rimuovere bin e pulire il progetto ma l'errore rimane lo stesso. Si prega di controllare il mio post originale modificato in cui ho postato una foto di tutti i pacchetti e il loro contenuto e manifest file. – Guy

+0

Se si sta utilizzando la versione precedente apk nel dispositivo/emulatore, quindi disinstallare e installare l'ultima versione del modulo build.From dal registro degli arresti /data/app/si.dvanadva.evanturist-2.apk indica che esistono 2 build (apk) nel sistema. Inoltre, esiste la possibilità che le impostazioni/configurazioni del progetto non siano ancora efficaci durante la creazione dell'app. Ciò potrebbe essere dovuto al caching delle proprietà del progetto da parte di Eclipse. – Chandan

+0

Ho provato a rimuovere la versione precedente e installare la versione più recente ma non ha funzionato. Come posso risolvere il problema con 2 build e impostazioni/configurazioni? Si prega di controllare anche la mia nuova modifica, ho postato uno screenshot della scheda di esportazione nei percorsi di costruzione, forse il problema è lì? – Guy

Problemi correlati