Ho cercato di mantenere un progetto di gioco abbastanza indipendente dalla piattaforma, quindi l'ho diviso in tre progetti dal livello basso a quello superiore di Android come quello: motore , gioco, gioco Android.Attività Android in Eclipse/ADT con dipendenze di progetto (risoluzione XY fallita)
Le classi coinvolte/interfacce per l'errore sono quelli:
progetto motore (livello basso) definisce questa interfaccia:
com.myteam.engine.IGame
(livello medio) progetto piattaforma di gioco indipendente definisce quelle classi:
com.myteam.myproject.Game com.myteam.myproject.MyProject (derived from com.myteam.myproject.Game)
(livello superiore) Projec Android t implementa l'attività, ecc .:
com.myteam.myproject.android.MyAndroidActivity (using com.myteam.myproject.MyProject)
Tutti compila bene e funziona perfettamente sotto Windows (con un altro progetto di Windows al livello 3 con i primi due).
Tuttavia, quando viene eseguito con ADT, non viene eseguito in fase di esecuzione all'avvio dell'attività. L'app Android mostra semplicemente uno stack di chiamate con un'eccezione "NoClassDefFoundError com.myteam.myproject.MyProject".
L'eccezione sembra essere causato dalla sua classe super (o l'interfaccia super-class') durante il caricamento/risolvere come l'uscita LogCat rivela:
12-20 19:51:51.897: D/ddm-heap(218): Got feature list request
12-20 19:51:52.207: I/dalvikvm(218): Failed resolving Lcom/myteam/myproject/Game; interface 18 'Lcom/myteam/engine/IGame;'
12-20 19:51:52.217: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/Game;' failed
12-20 19:51:52.227: W/dalvikvm(218): Unable to resolve superclass of Lcom/myteam/myproject/MyProject; (52)
12-20 19:51:52.227: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/MyProject;' failed
12-20 19:51:52.227: E/dalvikvm(218): Could not find class 'com.myteam.myproject.MyProject', referenced from method com.myteam.myproject.android.MyAndroidActivity.onCreate
12-20 19:51:52.227: W/dalvikvm(218): VFY: unable to resolve new-instance 54 (Lcom/myteam/myproject/MyProject;) in Lcom/myteam/myproject/android/Youcode_AndroidActivity;
12-20 19:51:52.227: D/dalvikvm(218): VFY: replacing opcode 0x22 at 0x0008
12-20 19:51:52.227: D/dalvikvm(218): Making a copy of Lcom/myteam/myproject/android/Youcode_AndroidActivity;.onCreate code (88 bytes)
Ho provato ad aggiungere i due primi progetti nell'ambito del "Build Percorso/Ordine ed esportazione "Le impostazioni del progetto Eclipse del progetto di gioco Android come descritto in altri post e forum, ma non cambia nulla.
La mia impressione è che le impostazioni di Manifesto o Progetto necessitino di un'altra menzione delle dipendenze pacchetto/classe per l'imballaggio di apk o il tempo di esecuzione. Qualche idea?
Hai controllato se .apk contiene classi che non sono state trovate? – bart
Ho quasi lo stesso problema di te: un progetto Android che dipende da progetti solo Java. Fino ad oggi (quando ho aggiornato gli strumenti di Android SDK r17 da r16), sono riuscito a farlo funzionare con Proprietà progetto-> Percorso di costruzione Java-> Progetti. Ma ora ricevo la stessa eccezione che hai segnalato. Ho presentato una segnalazione di bug: http://code.google.com/p/android/issues/detail?id=27882 – jfritz42
Wow stavo andando matto con questo problema. Fortunatamente il link di jfritz42 aveva la risposta di cui avevo bisogno. Thx man. – tulio84z