Преобразование в формат Дальвика перестало работать с ошибкой 1 с javax/net/SocketFactory.class

Это не работает.

while (read(fps[i][0], &each_record_read, sizeof(struct rec)) > 0)

не так, и вы можете прочитать короткое. Когда мы имеем дело со структурированным каналом, мы обычно используем что-то вроде этого:

ssize_t read_block(int source, void *buffer, ssize_t len)
{
    char *work = buffer;
    while (len) {
        ssize_t delta = read(source, work, len);
        if (delta < 0) return -1; /* ERROR */
        if (delta == 0) return 0; /* EOF */
        work += delta;
        len -= delta;
    }
}

/* ... */

    while (read_block(fps[i][0], &each_record_read, sizeof(struct rec)) > 0){

Теперь это работает.

25
задан Alex Lockwood 18 March 2012 в 06:49
поделиться

10 ответов

Из того, что я понимаю, эта та же самая загадочная ошибка могла быть вызвана множеством причин. У меня тоже ошибка "Преобразование в формат Dalvik с ошибкой 1". В моем случае проблема заключалась в том, что по какой-то причине Project -> Properties -> Java Compiler не был установлен на «Включить специфичные для проекта настройки» с правильными настройками Java 1.5, но вместо этого был оставлен по умолчанию (1.6 в моем случае). Отладка, сборка и тестирование на устройствах / эмуляторах работали нормально, но экспорт всегда заканчивался сообщением об ошибке выше.

Если вы не уверены в правильности настроек, создайте тот же проект в некотором альтернативном месте и просто скопируйте все необходимые файлы из старого проекта в новый. Это решило проблему для меня.

Следующая проблема с тем же сообщением об ошибке возникла из-за использования proguard. Обновление до последней версии путем замены той, которая пришла на Android SDK, исправило это.

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

0
ответ дан demosten 28 November 2019 в 17:48
поделиться

Я сделал это в качестве инструкции первого ответа, и он работает. (Linux) Я думаю, что проблема может быть вызвана обновлениями SDK или ADT. Мне нужно очистить всю библиотеку в пути Java Building, а затем использовать инструменты Android для исправления проекта. После очистки и восстановления он работает как прежде.

0
ответ дан cedricliang 28 November 2019 в 17:48
поделиться

Я решил проблему, обновив доступные пакеты в Android SDK et AVD manager. Не нужно удалять Eclipse.

1
ответ дан Pozinux 28 November 2019 в 17:48
поделиться

Я мог бы решить эту проблему, создав новый проект, похоже, что некоторые настройки проекта создавали эту проблему и не могли найти основную причину этого. Но сброс существующего исходного кода в новый проект решил эту проблему. Если кто-то нашел причину этой проблемы, пожалуйста, дайте мне знать.

1
ответ дан Sridhar 28 November 2019 в 17:48
поделиться

При определенных условиях он получает свои изгибы в завихрении, и лучшее решение, которое я нашел, состоит в том, чтобы удалить ссылочные банки, очистить, добавить их обратно и затем снова скомпилировать.

Я полагаю, что ошибка может быть вызвана включением одного и того же класса дважды.

Эта ошибка также возникает (и вы не сможете избавиться от нее путем очистки) при использовании классов, не являющихся частью среды Android.

1
ответ дан FishyFingers 28 November 2019 в 17:48
поделиться

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

2
ответ дан jomarco 28 November 2019 в 17:48
поделиться

У меня была та же проблема, и я безуспешно пробовал все решения, перечисленные здесь (я начинал раздражаться). Затем я удалил проект из рабочей области, а затем снова импортировал его, и проблем не было!

3
ответ дан stealthcopter 28 November 2019 в 17:48
поделиться

У меня была та же проблема, и я решил ее следующим образом:

  1. Сначала очистите все банки; (Эта проблема должна возникать из-за ваших некоторых jar-файлов)
  2. Удалить проект;
  3. Повторно импортировать проект;
  4. Убедитесь, что ваш SDK верен, и проект выбрал одну версию SDK; ]
  5. (Это моя проблема, чтобы решить эту проблему). Щелкните правой кнопкой мыши свой проект и выберите «build-path», затем выберите «add Librarys» и добавьте ваши частные jar-файлы; clean-build, проблема исправлена;
4
ответ дан MrHen 28 November 2019 в 17:48
поделиться
  • Я решил проблему (по крайней мере, для меня).

Вот что я сделал:

  • Перейдите в Проект »Свойства» Путь сборки Java »Библиотеки
  • Удалите все, кроме« Android X.Y », нажмите OK.
  • Перейти к проекту »Очистить» Очистить проекты, выбранные ниже »выберите свой проект и нажмите OK.

Это помогло мне. Надеюсь, что это сработает и у вас

Обновление: ну, на самом деле, мне, возможно, придется отказаться от своего мнения ... действия удалили сообщения об ошибках, но теперь мне не хватает определенных классов и методов ... arggghhhh

11
ответ дан Spock 28 November 2019 в 17:48
поделиться

Либо:

  • javax.net.SocketLibrary находится в вашем исходном коде, либо
  • javax.net.SocketLibrary включен в файл JAR в вашем проекте
1
ответ дан 28 November 2019 в 17:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: