Autore Topic: Errore all'esportazione dell'apk  (Letto 340 volte)

Offline warko

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy S2
  • Sistema operativo:
    windows 7
Errore all'esportazione dell'apk
« il: 11 Giugno 2013, 22:30:05 CEST »
0
ciao a tutti,
alla fine della procedura per creare la keystore ed esportare l'apk mi va in errore:
"conversion to dalvik format failed with error 1"

L'applicazione contiene anche facebookSDK, può dipendere da questo? come posso risolvere il problema?  ???

grazie per qualsiasi suggerimento
« Ultima modifica: 11 Giugno 2013, 22:33:12 CEST da warko »

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Errore all'esportazione dell'apk
« Risposta #1 il: 12 Giugno 2013, 17:44:45 CEST »
0
Controllo di aver importato correttamente le librerie di cui fai uso: in particolare fai attenzione a mettere i jar sotto /libs senza toccare il build path (come invece si faceva una volta).

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore all'esportazione dell'apk
« Risposta #2 il: 12 Giugno 2013, 18:44:14 CEST »
0
Sulle librerie inoltre non copiare i jar dentro libs dall'esterno di eclipse, ma trascinando i file nella cartella del progetto IN eclipse. I jar devono essere rimaneggiati dal plugin per essere digeriti da Android, e copiandoli fuori da eclipse non parte il rimaneggiamento.

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Errore all'esportazione dell'apk
« Risposta #3 il: 12 Giugno 2013, 19:23:46 CEST »
0
Sulle librerie inoltre non copiare i jar dentro libs dall'esterno di eclipse, ma trascinando i file nella cartella del progetto IN eclipse.

? ? ? Devono essere copiati nella directory "libs" del progetto altrimenti non vengono riconosciuti dal tool del SDK di Android (i quali sono esterni e indipendenti dal  IDE) come scritto nella documentazione:

Managing Projects | Android Developers

basta copiarli in qualche modo, se poi Eclipse non rinfresca basta un F5 e/o un clean per aggiornare i riferimenti.

Bisogna riportare almeno il primo errore, l'errore segnalato "conversion to dalvik ..." di solito è l'ultimo, prima vengono segnalati altri errori più significativi. Naturalmente bisogna essere sicuri di avere l'ultima versione del SDK, alcune vecchie versioni soffrivano di alcuni bug su questa fase di creazione del pacchetto.
adb logcat | tee /tmp/logcat | grep TAG

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore all'esportazione dell'apk
« Risposta #4 il: 12 Giugno 2013, 20:29:07 CEST »
0
Quando usi il tool esterno fa comunque una sorta di "ricompilazione" dei jar in libs. Quando operi con il plugin eclipse (che parte anche quando fai il refresh in effetti) la ricompilazione avviene al volo. Il bytecode java è leggermente diverso da quello android, oltre al fatto che non tutto l'sdk java è compatibile e la "ricompilazione" individua anche questo tipo di incompatibilità.
Ad esempio fino a non molto tempo fa Twitter4j aveva un jar appositamente predisposto per android.
O almeno io la so così, ma ci sta che siano nozioni diventate obsolete.

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Errore all'esportazione dell'apk
« Risposta #5 il: 13 Giugno 2013, 11:41:17 CEST »
0
...
O almeno io la so così, ma ci sta che siano nozioni diventate obsolete.

Fai un po' confuse, il jar non viene ricompilato (non ci sono i sorgenti) ma convertito nei bytecode usati dalla JVM di Android (register based), totalmente diversi dai bytecode usati dalla JVM di Oracle (stack based).

Quando si usa Eclipse viene ingannato, Eclipse crede di sviluppare un programma Java per l'ambiente di Oracle ma alla fine ADT passa tutto ai tool del SDK di Android (programmi totalmente indipendenti da qualsiasi IDE grafico) i quali creano apk secondo le specifiche di Android. Se c'è qualcosa che non va' segnala con errori simili a quelli del primo post anche se per Eclipse il codice apparentemente è corretto senza errori. Il altre parole le regole per creare un package per Android le impone SDK di Android non Eclipse.
adb logcat | tee /tmp/logcat | grep TAG