2013-06-22 9 views
13

Ho visto alcune domande con questo argomento, ma quando cerco l'altra parte che ho nel mio errore, non trovo nulla , quindi ho deciso di pubblicare una domanda con la spiegazione completa.Conversione in formato Dalvik non riuscita con errore 1 con un messaggio spaventoso nella vista Console

Nessun errore è riconosciuto nel mio codice. Da nessuna parte. Vengono aggiunte tutte le librerie, i progetti di librerie esterne sono collegati correttamente. Non vi è alcuna indicazione che qualcosa dovrebbe andare storto con un lancio.

Tuttavia, quando avvio l'applicazione - Esegui, compila e costruisci (automaticamente) - Viene visualizzato un messaggio popup che indica che il mio progetto contiene errori e che dovrei correggerli prima di tentare di avviare nuovamente l'applicazione .

Così ho giocherellare con alcune proprietà, il mio collega scopre che "Android Private Libraries" deve essere controllato in Properties -> Java Build Path -> Order and Export (che ho controllato un incontrollato insieme con le altre caselle di controllo, prima). Ma quando faccio funzionare l'applicazione - stessa pop-up, e la successiva nella vista Console: (messaggio di paura)

[2013-06-22 20:55:03 - TheApplication] Dx 
trouble processing "java/sql/Savepoint.class": 

Ill-advised or mistaken usage of a core class (java.* or javax.*) 
when not building a core library. 

This is often due to inadvertently including a core library file 
in your application's project, when using an IDE (such as 
Eclipse). If you are sure you're not intentionally defining a 
core class, then this is the most likely explanation of what's 
going on. 

However, you might actually be trying to define a class in a core 
namespace, the source of which you may have taken, for example, 
from a non-Android virtual machine project. This will most 
assuredly not work. At a minimum, it jeopardizes the 
compatibility of your app with future versions of the platform. 
It is also often of questionable legality. 

If you really intend to build a core library -- which is only 
appropriate as part of creating a full virtual machine 
distribution, as opposed to compiling an application -- then use 
the "--core-library" option to suppress this error message. 

If you go ahead and use "--core-library" but are in fact 
building an application, then be forewarned that your application 
will still fail to build or run, at some point. Please be 
prepared for angry customers who find, for example, that your 
application ceases to function once they upgrade their operating 
system. You will be to blame for this problem. 

If you are legitimately using some code that happens to be in a 
core package, then the easiest safe alternative you have is to 
repackage that code. That is, move the classes in question into 
your own package namespace. This means that they will never be in 
conflict with core system classes. JarJar is a tool that may help 
you in this endeavor. If you find that you cannot do this, then 
that is an indication that the path you are on will ultimately 
lead to pain, suffering, grief, and lamentation. 

[2013-06-22 20:55:03 - TheApplication] Dx 1 error; aborting 
[2013-06-22 20:55:03 - TheApplication] Conversion to Dalvik format failed with error 1 

Qualcuno ha ottenuto questo messaggio prima? Perché lo sto prendendo? Dove dovrei andare a cercare "librerie nascoste" o "librerie interne" di cui potrei anche non essere a conoscenza?

Ho controllato con il mio capo e collega - hanno tutte le stesse librerie nel progetto (dal momento che stiamo lavorando insieme, ovviamente dobbiamo avere le stesse cose). Quindi dove dovrei andare cercando di risolvere questo problema?

risposta

4

Qualcuno ha ricevuto questo messaggio prima?

Sì. Non dal 2009, però.

Perché lo ottengo?

Perché nel codice sorgente del progetto, o in un JAR, si dispone di un'altra copia dell'interfaccia java.sql.Savepoint, diverso da quello che viene dal runtime di Android.

Dove dovrei andare a cercare "librerie nascoste" o "librerie interne" di cui forse non ero a conoscenza?

Il percorso classe Eclipse. Potresti voler modificare la tua domanda con uno screenshot della schermata "Esporta & Export" dalla finestra di dialogo del percorso di compilazione.

15

Risolvo che rimuovere android.jar nella scheda "Ordine ed esportazione" nel proyect e nelle librerie.

+0

+1 Sì ... questo ha risolto il problema per me ... – user755499

+0

Non so perché questo succede, ma risolve il problema –

+0

Invece di scrivere tutta quella merda ... perché non ci chiedono solo di rimuovilo ... (a proposito, era già deselezionato ... pensavo che fosse per errore, quindi l'ho selezionato, in quel momento non c'era nessun errore, ma, in un secondo momento, quando ho ripulito il mio progetto, è successo.) –

1

Aveva lo stesso problema.

La seguente azione mi ha aiutato a sbarazzarsi di questo messaggio di errore.

1) Vai alla Project--> properties-->Java Build Path

2) Selezionare Order and Export tab

3) Deselezionare l'Android Private Libraries e Android Dependencies e fare clic su ok

enter image description here

Dopo questo l'applicazione ha ottenuto lanciato con successo.

+0

ma si possono essere quelle librerie Android ... per esempio v4/v7 supporta gli ibridi – Jasper