D'accord, maintenant je suis vraiment coincé ici. Je ne sais pas quoi faire, où aller ou quoi que ce soit!
J'ai essayé de désinstaller, réinstaller, les versions SDK et Eclipse, en essayant de Google, mais nu-euh ... Rien !!!
Je peux exécuter mon application dans l'émulateur, mais je ne peux pas l'exporter ...
[2011-10-07 16:35:30 - Dex Loader] Impossible d'exécuter dex: plusieurs fichiers dex définissent Lcom/dreamhawk/kalori/DataBaseHelper;
c'est dataBaseHelper
package com.dreamhawk.kalori;
import Java.io.FileOutputStream;
import Java.io.IOException;
import Java.io.InputStream;
import Java.io.OutputStream;
import Android.content.Context;
import Android.database.Cursor;
import Android.database.SQLException;
import Android.database.sqlite.SQLiteDatabase;
import Android.database.sqlite.SQLiteException;
import Android.database.sqlite.SQLiteOpenHelper;
import Android.util.Log;
import Android.widget.Toast;
public class DataBaseHelper extends SQLiteOpenHelper {
// The Android's default system path of your application database.
private static String DB_PATH = "/data/data/com.dreamhawk.kalori/databases/";
private static String DB_NAME = "livsmedel_db";
private DataBaseHelper myDBHelper;
private SQLiteDatabase myDb;
private final Context myContext;
private static final String DATABASE_TABLE = "Livsmedel";
public static String DB_FILEPATH = "/data/data/com.dreamhawk.kalori/databases/lifemedel_db";
public static final String KEY_TITLE = "Namn";
public static final String KEY_BODY = "Kcal";
public static final String KEY_ROWID = "_id";
private static final int DATABASE_VERSION = 2;
/**
* Constructor Takes and keeps a reference of the passed context in order to
* access to the application assets and resources.
*
* @param context
*/
public DataBaseHelper(Context context) {
super(context, DB_NAME, null, 1);
this.myContext = context;
// checking database and open it if exists
if (checkDataBase()) {
openDataBase();
} else {
try {
this.getReadableDatabase();
createDatabase();
this.close();
openDataBase();
} catch (IOException e) {
throw new Error("Error copying database");
}
Toast.makeText(context, "Livsmedelsdatabasen importerad",
Toast.LENGTH_LONG).show();
}
}
private boolean checkDataBase() {
SQLiteDatabase checkDB = null;
boolean exist = false;
try {
String dbPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(dbPath, null,
SQLiteDatabase.OPEN_READONLY);
} catch (SQLiteException e) {
Log.v("db log", "database does't exist");
}
if (checkDB != null) {
exist = true;
checkDB.close();
}
return exist;
}
@Override
public void onCreate(SQLiteDatabase db) {
// db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w("Kalori", "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS Livsmedel");
onCreate(db);
}
public DataBaseHelper open() throws SQLException {
myDBHelper = new DataBaseHelper(myContext);
myDb = myDBHelper.getWritableDatabase();
return this;
}
public void createDatabase() throws IOException {
InputStream assetsDB = myContext.getAssets().open("livsmedel_db");
// OutputStream dbOut = new FileOutputStream(DB_PATH);
String outFileName = DB_PATH + DB_NAME;
OutputStream dbOut = new FileOutputStream(outFileName);
Log.d("DH", "index=" + assetsDB);
byte[] buffer = new byte[1024];
int length;
while ((length = assetsDB.read(buffer)) > 0) {
dbOut.write(buffer, 0, length);
}
dbOut.flush();
dbOut.close();
assetsDB.close();
}
public Cursor fetchAllNotes() {
return myDb.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE,
KEY_BODY }, null, null, null, null, null);
}
public void openDataBase() throws SQLException {
String dbPath = DB_PATH + DB_NAME;
myDb = SQLiteDatabase.openDatabase(dbPath, null,
SQLiteDatabase.OPEN_READWRITE);
}
}
Je soupçonne:
import Java.io.FileOutputStream;
import Java.io.IOException;
import Java.io.InputStream;
import Java.io.OutputStream;
Mais je ne sais pas quoi faire ... S'il vous plaît, aidez !!! : "(
J'ai mis à jour Eclipse (Help->Check
pour les mises à jour) aujourd'hui (21 octobre 2011) et maintenant je ne vois pas l'erreur. Avant cela, j'ai eu l'erreur "Unable to execute dex: Multiple dex files define
". J'espère que cela t'aides.
Il y a un fichier dans bin/dexedLibs Le même fichier existe dans les bibliothèques
Supprimez-le dans les bibliothèques et cela devrait fonctionner.
Pour moi, c'était le support Android-v4.jar.
J'espère que cela t'aides
Fixé en suivant des étapes simples
Cela a fonctionné pour moi .. :)
Problème résolu.
Avant la mise à niveau, j'avais 3 Android: App1, App2 et Lib. Lib est un Android et App1 et App2 l'utilisent).
Après la mise à niveau d'ADT et du SDK, j'ai vu des erreurs comme
[2012-12-05 15:54:10 - Dex Loader] Unable to execute dex: Multiple dex files define Lxxx;
[2012-12-05 15:54:10 - TrailGuide] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lxxx;
La solution consistait à supprimer dans App1 et App2 le dossier appelé "Lib_src".
Les projets Library et App contiennent tous les deux un même fichier DataBaseHelper.Java. Excluez-le simplement du projet App.
Cela m’était arrivé quand j’avais deux copies de la même bibliothèque (j’avais deux révisions différentes de la bibliothèque de support Android version 4). Une fois que j’en ai retiré une - le projet compilé J'ai pu l'exécuter. Dan
WOW enfin ...
Cette erreur était assez horrible. J'ai finalement téléchargé la dernière version d'Eclipse Java EE, puis j'ai installé le plugin ADT dans le nouvel Eclipse. Voir Installation du plugin Eclipse .
Par la suite, j'ai configuré mon projet comme d'habitude et j'ai utilisé les directives d'exportation trouvées ici: Signature de vos applications
Mais de toute façon, j'ai vu beaucoup de réponses ... et le problème réel est extrêmement difficile à diagnostiquer. Il est possible que le problème réside dans l'incompatibilité entre le plugin ADT et l'IDE Eclipse. Je sais juste que l'utilisation des versions les plus récentes fera fonctionner les choses (à partir du 5 septembre 2012).
Essayez de suivre les étapes: Désactivez l'option "Projet-> Générer automatiquement", puis "Nettoyer" et "Générer" le projet, puis essayez d'exécuter. travaille pour moi. peut remettre l'option "Construire automatiquement" sur On
Je voyais également le message "Plusieurs fichiers dex définir". Après avoir lu sur certaines des modifications de R14 , j'ai supprimé le répertoire bin de mon projet, nettoyé et reconstruit le projet comme décrit par @abbandon ci-dessus et redémarré Eclipse. Ces étapes ont résolu le problème pour moi.
pour moi, j'utilisais Android studio lorsque j'ai rencontré ce problème, j'utilisais les SDK externes Google Admob et Analytics.
Maintenant, ils les expédient avec le KitKat SDK, qui a provoqué le conflit, la solution était d'ouvrir le fichier project.iml et de supprimer les lignes suivantes:
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$USER_HOME$/Downloads/Ads/lib/Amazon-ads-4.0.9.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$USER_HOME$/Downloads/Folx/application/GoogleAdMobAdsSdk-6.2.1/Add-ons/googleanalyticsandroid/libGoogleAnalyticsV2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
J'espère que ça aide, faites attention ..
si vous importez un pot de support à partir d'un autre projet, vous devez aller dans * Java Build Path * sur 'commander et exporter', cliquez sur le pot de support et placez-le au-dessus de votre projet reconstruit de dépendances.
Dans mon cas, il y avait deux fichiers jars différents inclus dans le dossier libs.
J'ai supprimé l'un d'eux pour résoudre mon problème.
Corrigé en supprimant les bibliothèques tierces du dossier libs.
Au départ, j'ai essayé de construire des pots d'ActionBarSherlock et MenuDrawer en utilisant ant mais cela n'a pas fonctionné.
La suppression de ces fichiers jars du répertoire libs a corrigé le bogue
Suppression du dossier Libs dans le projet, nouveau dossier Lib_src, importation du pot à nouveau. et cliquez avec le bouton droit sur le projet -> Chemin de génération -> Chemin de génération de configuration, dossier Libs sélectionné et cliquez sur Supprimer, cliquez sur le bouton Ajouter un dossier -> sélectionnez Lib_src -> OK
Dans Cordova, dans le dossier libs, il y a un fichier que nous avons défini dans le chemin de génération. j'ai mis à jour cordova et mettre à jour le fichier jar mais oubliez de supprimer l'ancien fichier jar dans le dossier libs. retiré l'ancien et le projet a fonctionné comme un charme!
Aucune des suggestions ici ne l'a résolu pour moi. C'est ainsi que je l'ai corrigé:
A l'intérieur du fichier /proj.Android/jni/Application.mk sur la 3ème ligne, il spécifiait de construire en "mips". J'ai changé cela en APP_ABI: = armeabi-v7a pour qu'il puisse trouver correctement toutes les bibliothèques prédéfinies.