2011-06-13 25 views
73

Sono riuscito a ristrutturare la mia applicazione abbastanza bene in modo che, ad eccezione di alcuni metodi in una classe di attività derivata, tutto sia in un progetto di libreria.Impossibile trovare Library.apk!

Funziona in modo bello, tranne console che di Eclipse (non LogCat!) Emette il seguente messaggio di errore:

[2011-06-13 19:54:08 - MyLibrary] Could not find MyLibrary.apk! 

ho pulito entrambi i progetti (biblioteca e applicazione), riavviato Eclipse, ricostruita i progetti, ma questo strano messaggio di errore persiste.

Cosa significa questo messaggio di errore? (specialmente alla luce che tutto sembra funzionare OK)

Come faccio a sbarazzarmene?

UPDATE: Ho provato a rimuovere il progetto e poi reimportarlo secondo il suggerimento di seguito. Non ha aiutato. Ho quindi trovato this thread che mi ha aiutato a capire che avevo <uses-library> nell'applicazione AndroidManifest.xml riferita a MyLibrary. L'ho cancellato, pulito il progetto e ricostruito. Il problema persiste.

Ora sospetto che questo sia un "problema reale", ad es. errata configurazione di alcuni percorsi o qualcos'altro da parte mia. Cosa potrebbe essere?

risposta

162

Ho trovato la fonte del problema!

Si scopre che "con la nuova funzione di libreria, non è necessario specificare i progetti Android si dipende in Java sezione Percorso delle costruzioni Proprietà. Lo fai nella sezione Android delle proprietà".

Quindi tutto ciò che dovevo fare è andare su Application Project Properties, premere il tab Projects, selezionare il mio progetto di libreria e fare clic sul pulsante Remove. Questo è tutto. Non più problema

In Eclipse Java EE selezionare le proprietà del progetto, quindi selezionare Project References, quindi controllare il FacebookSDK (vedi cattura dello schermo) enter image description here

Grazie a Lance Nanek!

+1

Che lo aspetti, ha funzionato ora. – sabbour

+0

Non ho alcun mio progetto di libreria nella mia applicazione, ma ho ancora questo errore. Allora, qual è il Sollution per questo? –

+0

se non funziona, riavviare eclipse funzionerà dopo questo. – ercu

1

Hai provato a rimuovere il progetto senza eliminarlo dal disco fisso e reimportare il progetto. Sembrava funzionare per me quando ho avuto questo problema.

+2

Sta dicendo che la programmazione al giorno d'oggi è diventato più simile a Voodoo e meno come la scienza? :) Proverò il tuo suggerimento e riferirò. Nel frattempo, +1 per il tentativo di aiutare. – an00b

+0

Ho appena provato a rimuovere il ** progetto ** dell'applicazione solo dopo di re-importarlo. ** Non ha aiutato **. Proverò ora a rimuovere il progetto della libreria ... – an00b

+0

Ho appena provato a rimuovere il progetto ** library ** e poi a reimportarlo. ** Non ha aiutato **. Ora sospetto che questo sia ** un vero problema **, ad es. errata configurazione di alcuni percorsi o qualcos'altro da parte mia. Cosa potrebbe essere? – an00b

0

Utilizzando le preferenze di Eclipse si può finire con l'aggiunta di librerie libs ovunque. Ho avuto un lib di riferimento in/libs e librerie Biblioteche di riferimento. Ho dovuto rimuovere o cancellarli da queste posizioni e inserirlo in Android Dipendenze (utilizzando le Preferenze -> Android e la navigazione al di sotto del "è la libreria" casella.)

Il layout corretto per il mio progetto: http://www.pasteall.org/pic/show.php?id=34513

4

Questo è interessante ... ho fatto non del tutto fare ciò che la risposta specifica ..

ho un progetto Android separato chiamato "ConnectionHandler", che si collega ad un webservice per recuperare le informazioni. Questo progetto non contiene classi di attività. (In tal caso, è necessario modificare il file AndroidManifest nell'applicazione principale e seguire le istruzioni riportate di seguito).

di usare la mia separato progetto ConnectionHandler come una libreria avevo bisogno di fare quanto segue:

  1. nel ricorso principale> Selezionare le proprietà del progetto> Vai a Java Build Path> Aggiungi Vasi> Selezionare la cartella bin ConnectionHandler> scegliere connectionhandler.jar
  2. Nel progetto ConnectionHandler> Selezionare le proprietà del progetto> Android> Verifica isLibrary
  3. Nel principale dell'applicazione> Selezionare le proprietà del progetto> Vai a Android > Aggiungi riferimento a ConnectionHandler nella sezione Libreria.

Questo funziona per me , e sono in grado di connettersi al mio webservice, anche se non ho i file di origine per fare questo nella mia applicazione principale. Tutto è contenuto nel mio vaso ConnectionHandler che viene fatto riferimento ..

Spero che questo aiuti qualcuno ...

2

Oggi ho cominciato a ricevere questo messaggio di errore sulla vista Console di Eclipse, ma si scopre che questo non era il problema. La mia applicazione sarebbe stata costruita e installata sul mio dispositivo, e persino funzionò per una frazione di secondo (fino a quando non si arrestò). Questo è ciò che la mia vista Console sembrava su Eclipse:

[2013-06-03 09:42:25 - my-android] Android Launch! 
[2013-06-03 09:42:25 - my-android] adb is running normally. 
[2013-06-03 09:42:25 - my-android] Performing com.my.android.activity.MainActivity activity launch 
[2013-06-03 09:42:25 - my-android] Uploading my-android.apk onto device '650rfs2e' 
[2013-06-03 09:42:31 - my-android] Installing my-android.apk... 
[2013-06-03 09:42:35 - my-android] Success! 
[2013-06-03 09:42:36 - my-other-android] Could not find my-other-android.apk! 
[2013-06-03 09:42:36 - android-SherlockFragment] Could not find android-SherlockFragment.apk! 
[2013-06-03 09:42:36 - my-android] Starting activity com.my.android.activity.MainActivity on device 650rfs2e 
[2013-06-03 09:42:36 - my-android] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.my.android/.activity.MainActivity } 

Ma a ben guardare la mia LogCat, ci fu un'eccezione stupido essere gettato da un frammento che stavo cercando di inizializzazione. Una volta sistemato il mio frammento (che stava generando un NPE), tutto ha funzionato bene, anche attraverso la mia console mi dice ancora che non è in grado di trovare gli APK di queste librerie.

0

Per me, la ragione per cui questo stava accadendo era che il progetto della biblioteca e il progetto principale avevano lo stesso pacchetto. Il modo più semplice per modificare il pacchetto è right click on the library project > Android Tools > Rename Application Package.

0

La soluzione a questo problema per me è stata la rimozione di voci errate dal file manifest dei progetti della libreria.

L'arresto anomalo si verifica solo in fase di esecuzione quando raggiunge il primo utilizzo del mio progetto di libreria. Una volta a cambiare la proprietà Nome applicazione in modo da riflettere la classe di applicazione corretta per il progetto che utilizzato il progetto di libreria, quindi ha funzionato