Ответ 1
Я обновил eclipse (Help->Check
для обновлений) сегодня (21 октября 2011 г.), и теперь я не вижу ошибки. До этого у меня была ошибка "Unable to execute dex: Multiple dex files 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;
Но я не знаю, что делать... Пожалуйста, помогите!!!: '(
Я обновил eclipse (Help->Check
для обновлений) сегодня (21 октября 2011 г.), и теперь я не вижу ошибки. До этого у меня была ошибка "Unable to execute dex: Multiple dex files define
". Надеюсь, это поможет.
В файле bin/dexedLibs есть файл Тот же файл существует в libs
Удалите его в библиотеках, и он должен работать.
Для меня это была поддержка android-v4.jar.
Надеюсь, что это поможет
Исправлено его, выполнив простые шаги
Это сработало для меня..:)
Проблема решена.
Перед обновлением у меня было 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".
И в Библиотеке, и в проектах приложений есть тот же файл DataBaseHelper.java. Просто исключите его из проекта приложения.
Мне это случилось со мной, когда у меня было две копии одного и того же lib (у меня было два разных варианта поддержки библиотеки поддержки Android версии 4). Как только я удалил один из них - проект был скомпилирован, и я смог его запустить. Dan
WOW наконец...
Эта ошибка была довольно ужасной. В конце концов, я загрузил последнюю версию Eclipse Java EE, а затем установил плагин ADT в новый Eclipse. См. Установка плагина Eclipse.
Впоследствии я настроил свой проект как обычно и использовал приведенные здесь рекомендации по экспорту: Подписывание ваших приложений
Но в любом случае я видел много ответов... и актуальную проблему очень сложно диагностировать. Возможность заключается в том, что проблемы заключаются в несовместимости между плагином ADT и Eclipse IDE. Я просто знаю, что использование самых последних версий заставит все работать (по состоянию на 5 сентября 2012 года).
Попробуйте выполнить следующие действия: Отключите параметр "Project- > Build Automatically", затем "Clean" и "Build", затем попробуйте запустить. работает на меня. может установить опцию "Создать автоматически" в положение "Вкл."
Я также видел сообщение "Multix dex files define". После прочтения о некоторых изменениях в R14 я удалил каталог bin для моего проекта, очистил и перестроил проект, как описано в @abbandon выше и перезапустил Eclipse. Эти шаги устранили проблему для меня.
для меня, я использовал 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>
Надеюсь, что это поможет, позаботьтесь.
Исправлено удаление из сторонних библиотек из папки libs.
Сначала я попытался создать банки ActionBarSherlock и MenuDrawer с помощью ant, но это не сработало.
Удаление этих баночек из каталога libs исправило ошибку
В моем случае в папку libs было два разных файла jars.
Я удалил один из них, он решил мою проблему.
если вы импортируете банку поддержки из другого проекта, вам нужно перейти на * Путь сборки Java * по заказу и экспорту нажмите на банку поддержки и поставьте ее поверх своих зависимостей восстановленный проект.
В Кордове в папке libs есть файл, который мы установили в пути сборки. Я обновил кордову и обновил файл jar, но забыл удалить старый файл jar в папке libs. удалил старый, и проект работал как шарм!
Никакие предложения здесь не разрешили для меня. Вот как я его исправил:
Внутри файла /proj.android/jni/Application.mk на третьей строке он указывал на создание "mips". Я изменил это на APP_ABI: = armeabi-v7a, чтобы он мог правильно найти все готовые библиотеки.
Удалена папка Libs в проекте, новая папка Lib_src, снова импортируйте jar. и щелкните правой кнопкой мыши проект → Путь сборки → Конфигурировать путь сборки, выбранную папку Libs и нажмите "Удалить", щелкните "Добавить папку" → выберите Lib_src → OK