Затмение: преобразование в формат Dalvik завершилось ошибкой 1 - PullRequest
9 голосов
/ 26 сентября 2011

Это происходит мгновенно, когда я создаю новый проект в Eclipse.

У меня есть только 1 файл jar в проекте, я попытался удалить его, добавить его снова, несколько раз и очистить проектпосле этого.

Я обновил ProGuard (я думаю), скачал новую версию и заменил папку lib, как сказано здесь.

My default.properties файл выглядит так:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-8

Так что не могу ничего комментировать про ProGuard, который также упоминался в другой ветке.Я чувствую, что перепробовал все, и все еще этот баг.Хотя я заметил одну вещь: window -> preferences -> android -> build.И снимите флажок «Принудительная ошибка, когда внешние банки содержат собственные библиотеки» .Тогда я получаю: «Не удается разрешить R» вместо ошибки Dalvik.

Также не существует импорта с именем android.R.

Любой, с какой-нибудь помощью, пожалуйста

Ответы [ 9 ]

19 голосов
/ 26 сентября 2011

Это не похоже на проблему с proguard, поскольку она даже не включена в ваш файл defaults.properties . Попробуйте следующее:

  1. Снимите флажок «Принудительно вызывать ошибку, когда внешние файлы jar содержат собственные библиотеки» (как и вы)
  2. Выберите «Проект -> Очистить…» из меню
  3. Если это не поможет убедиться, что вы импортировали правильный класс R. Как указано на source.android.com :

    Eclipse иногда любит добавлять оператор android.R для импорта в верхняя часть ваших файлов, которые используют ресурсы, особенно когда вы спрашиваете затмение сортировать или иным образом управлять импортом. Это заставит вас делать перерыв. Посмотрите на эти ошибочные операторы импорта и удалите их.

ОБНОВЛЕНИЕ

Посмотрите также на эту тему: "Преобразование в формат Dalvik завершилось ошибкой 1" на внешнем JAR .
Проверьте следующие ответы (ссылка приведет вас непосредственно к ответу):

5 голосов
/ 02 августа 2012

Я по ошибке добавил ссылку на копию android.jar, которая не требовалась, поскольку это зависимость от Android, я удалил это, и ошибка исчезла.

2 голосов
/ 23 ноября 2011

У меня тоже возникла эта проблема ... Единственное, что исправило ее для меня, это вручную загрузить новейшую версию ProGuard (в настоящее время 4.6) и заменить SDK-версию папок bin и lib Proguard на самую новую версию.

После этого все снова заработало.По-видимому, это зарегистрированная ошибка ... http://code.google.com/p/android/issues/detail?id=18359

1 голос
/ 26 сентября 2011

У вас есть новый Android SDK?Если вы это сделаете, вам нужно скачать proguard.jar с веб-сайта proguard и заменить его в каталоге SDK.

0 голосов
/ 19 мая 2017

Я перепробовал много решений на stackoverflow, но у меня ничего не получалось.Я просто открываю файл project.properties в папке проекта, и библиотека appcompat была добавлена ​​здесь дважды, например, android.library.reference.1 = .. / appcompat_v7 android.library.reference.1 = .. / appcompat_v7

Iтолько что удалил одну строку, и это сработало для меня:)

0 голосов
/ 25 февраля 2016

Если ни одно из решений не работает для вас, попробуйте сделать следующее:

  1. Хватит искать онлайн-справку.
  2. Обратитесь к своему проекту. Это может быть что-то в коде, который Dalvik интерпретирует неправильно, даже если во время работы приложения не было сообщений об ошибках.

У меня была такая проблема. Несколько запусков / сборок / экспортов приложений с отключенным Proguard прошли успешно, и только после включения Proguard появилась ошибка 1. Следующие шаги помогут вам решить проблему:

  1. Создать новый проект.
  2. Чтобы обнаружить подозрительный класс, начните добавлять свои классы один за другим каждый раз, когда запускается инструмент экспорта подписанного приложения.
  3. Сузить поиск в этом классе, добавив к нему также блоки кода по одному.

В моем случае ошибка была вызвана:

float[][] array1 = null, array2;
for(int i = 0; i < someVal; i++){
    if(array1 == null){
        array1 = new float[row][col];
    }
    else{
        array2 = new float[array1.length][array1[0].length]; // ERROR 1
        // it was assumed that array1 is still null
    }
}

Когда я заменил его на:

float[][] array1 = new float[1][1], array2;
for(int i = 0; i < someVal; i++){
    if(i == 0){
        array1 = new float[row][col];
    }
    else{
        array2 = new float[array1.length][array1[0].length]; // ERROR 1
        // it was assumed that array1 is still null
    }
}

ОШИБКА 1 исчезла.

0 голосов
/ 20 августа 2014

Иногда я сталкивался с этой проблемой, и мне нужно было отключить «Автоматически строить». По моему опыту, Eclipse иногда запутывается при сборке apks, когда включено автоматическое построение.

0 голосов
/ 19 апреля 2014

Вы должны очищать свой проект каждый раз, когда используете обновление CVS.

0 голосов
/ 14 ноября 2011

Я сам боролся с этой проблемой, и в итоге я отредактировал файл proguard.bat, и проблема исчезла

, в которой он находится: [Каталог установки Android SDK] \ tools \ proguard \ bin \ proguard.bat

Изменить

вызов% java_exe% -jar "% PROGUARD_HOME%" \ lib \ proguard.jar% *

на

вызов% java_exe% -jar "% PROGUARD_HOME%" \ lib \ proguard.jar% 1% 2% 3% 4% 5% 6% 7% 8% 9

Я пробовал множество других вещей, но это то, что он сделалдля меня.

...