Подтвердить что ты не робот

Dex Loader Невозможно выполнить несколько файлов dex define

Хорошо, теперь я действительно застрял здесь. Я не знаю, что делать, куда идти или НИЧЕГО!

Я пытаюсь удалить, переустановить, как SDK, так и Eclipse-версии, пытаясь сделать это, но nu-uh... Nothing!!!

Я могу запустить приложение в эмуляторе, но я не могу его экспортировать...

[2011-10-07 16:35:30 - Dex Loader] Невозможно выполнить dex: несколько файлов dex определяют Lcom/dreamhawk/kalori/DataBaseHelper;

это 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 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);
    }

}

Я подозреваю:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

Но я не знаю, что делать... Пожалуйста, помогите!!!: '(

4b9b3361

Ответ 1

Я обновил eclipse (Help->Check для обновлений) сегодня (21 октября 2011 г.), и теперь я не вижу ошибки. До этого у меня была ошибка "Unable to execute dex: Multiple dex files define". Надеюсь, это поможет.

Ответ 2

В файле bin/dexedLibs есть файл Тот же файл существует в libs

Удалите его в библиотеках, и он должен работать.

Для меня это была поддержка android-v4.jar.

Надеюсь, что это поможет

Ответ 3

Исправлено его, выполнив простые шаги

  • щелкните правой кнопкой мыши проект
  • перейти к свойствам
  • выберите путь сборки Java.
  • На вкладке "Заказ и экспорт" снимите флажок jar файлов и зависимостей библиотеки
  • восстановленный проект.

Ответ 4

  • Перезапустить eclipse,
  • Удалить папку bin и gen и
  • Наконец, очистите проект и постройте его снова.

Это сработало для меня..:)

Ответ 5

Проблема решена.

Перед обновлением у меня было 3 проекта Android: App1, App2 и Lib. Lib - это проект библиотеки Android, и App1 и App2 используют его.

После обновления как ADT, так и SDK я видел ошибки типа

[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;

Решение заключалось в том, чтобы удалить в App1 и App2 папку под названием "Lib_src".

Ответ 6

И в Библиотеке, и в проектах приложений есть тот же файл DataBaseHelper.java. Просто исключите его из проекта приложения.

Ответ 7

Мне это случилось со мной, когда у меня было две копии одного и того же lib (у меня было два разных варианта поддержки библиотеки поддержки Android версии 4). Как только я удалил один из них - проект был скомпилирован, и я смог его запустить. Dan

Ответ 8

WOW наконец...

Эта ошибка была довольно ужасной. В конце концов, я загрузил последнюю версию Eclipse Java EE, а затем установил плагин ADT в новый Eclipse. См. Установка плагина Eclipse.

Впоследствии я настроил свой проект как обычно и использовал приведенные здесь рекомендации по экспорту: Подписывание ваших приложений

Но в любом случае я видел много ответов... и актуальную проблему очень сложно диагностировать. Возможность заключается в том, что проблемы заключаются в несовместимости между плагином ADT и Eclipse IDE. Я просто знаю, что использование самых последних версий заставит все работать (по состоянию на 5 сентября 2012 года).

Ответ 9

Попробуйте выполнить следующие действия: Отключите параметр "Project- > Build Automatically", затем "Clean" и "Build", затем попробуйте запустить. работает на меня. может установить опцию "Создать автоматически" в положение "Вкл."

Ответ 10

Я также видел сообщение "Multix dex files define". После прочтения о некоторых изменениях в R14 я удалил каталог bin для моего проекта, очистил и перестроил проект, как описано в @abbandon выше и перезапустил Eclipse. Эти шаги устранили проблему для меня.

Ответ 11

для меня, я использовал Android-студию, когда попал в эту проблему, я использовал внешние SDK Google Admob и Analytics.

Теперь они отправляют их с SDK kitkat, что вызвало конфликт, решение заключалось в том, чтобы открыть файл project.iml и удалить следующие строки:

<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>

Надеюсь, что это поможет, позаботьтесь.

Ответ 12

Исправлено удаление из сторонних библиотек из папки libs.

Сначала я попытался создать банки ActionBarSherlock и MenuDrawer с помощью ant, но это не сработало.

Удаление этих баночек из каталога libs исправило ошибку

Ответ 13

В моем случае в папку libs было два разных файла jars.

Я удалил один из них, он решил мою проблему.

Ответ 14

если вы импортируете банку поддержки из другого проекта, вам нужно перейти на * Путь сборки Java * по заказу и экспорту нажмите на банку поддержки и поставьте ее поверх своих зависимостей восстановленный проект.

Ответ 15

В Кордове в папке libs есть файл, который мы установили в пути сборки. Я обновил кордову и обновил файл jar, но забыл удалить старый файл jar в папке libs. удалил старый, и проект работал как шарм!

Ответ 16

Никакие предложения здесь не разрешили для меня. Вот как я его исправил:

Внутри файла /proj.android/jni/Application.mk на третьей строке он указывал на создание "mips". Я изменил это на APP_ABI: = armeabi-v7a, чтобы он мог правильно найти все готовые библиотеки.

Ответ 17

Удалена папка Libs в проекте, новая папка Lib_src, снова импортируйте jar. и щелкните правой кнопкой мыши проект → Путь сборки → Конфигурировать путь сборки, выбранную папку Libs и нажмите "Удалить", щелкните "Добавить папку" → выберите Lib_src → OK