Использование библиотеки Android в eclipse и переход к файлам классов вместо исходного файла, находящегося в рабочей области eclipse

Я нашел эту ошибку http://code.google.com/p/android/issues/detail?id=20731, которая разрешена, но она не исправила это точно, но я вижу в комментариях, что это упоминается там как проблема. Есть ли какой-то способ в eclipse для того, чтобы каким-то образом установить зависимости в проекте, что я могу нормально перейти к исходному коду, когда я в редакторе eclipse? Я попробовал множество способов решить эту проблему.

Моя настройка:

Android-проект, в котором установлена ​​Android-библиотека Android > Библиотека

Проект библиотеки Android, находящийся в рабочей области и зависящий от проекта библиотеки Java

Проект библиотеки Java, который находится в рабочей области и открыт как файл класса вместо источника.

  • Включение проекта библиотеки java через путь сборки обычно (это приводит к сбою сборки) [2012-03-13 11:07:21 - драйвер для таксиста Android] Dx НЕОПРЕДЕЛЕННОЕ ТОП-УРОВНЕ ИСКЛЮЧЕНИЕ: java.lang.IllegalArgumentException: уже добавлено: Lrensoft/java/collections/GenericIterator; [2012-03-13 11:07:21 - Taxicar Driver Android] Dx на com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) [2012-03-13 11:07:21 - Taxicar Driver Android] Dx на com.android.dx.dex.file.DexFile.add(DexFile.java:163)

  • В том числе, проект работает нормально, но редактор перескакивает в файлы классов библиотеки.

Обратите внимание, что я должен включать проект библиотеки Android через путь сборки, даже если он работает без него (достаточно установить как зависимую библиотеку android), но когда я его удаляю, я получаю также эти файлы в виде файлов классов:).

Итак, я думаю, что правильный путь не включает проекты через путь сборки вообще, но как затем настроить проект на переход к исходному?

Ответ 1

Я нашел решение. Мне также нужно создать библиотеку Android из моей java-библиотеки, а затем включить ее в качестве библиотеки android, а также в библиотеку Java. Затем мне нужно изменить порядок экспорта элементов экспорта, чтобы Android "Библиотечные проекты" были последними. И хорошо не много работы, Теперь даже переименуйте рефакторинг, с некоторым предупреждением, но работает:), Ну, я снова счастлив разработчиком.

Ответ 2

У меня была аналогичная проблема. Команда Open Declaration создала файл .class вместо файла .java. Моя проблема, однако, возникала, когда я использовал Open Declaration в своем проекте для Android, чтобы перейти к некоторому источнику в моем проекте Android Library. Следуя инструкциям из комментария это сообщение в блоге Eclipse теперь приводит меня в файл .java(вместо файла .class), когда я используйте команду Open Declaration.

Инструкции:

  • Щелкните правой кнопкой мыши на проекте, выберите Свойства
  • Выберите путь сборки Java
  • Выберите вкладку Заказ и Экспорт.
  • Выберите каждый проект библиотеки, от которого зависит ваш проект, и используйте Вверх или Вверх, чтобы переместить его над проектами. Например. переместите все проекты библиотеки наверху.

Это исправило goto.java вместо проблемы с файлом .class для меня.

(К сожалению, после внесения этих изменений эта проблема появляется (по крайней мере, для меня): Не удалось найти Library.apk!)

Затем я настраиваю свое рабочее пространство, как вы описываете в своем вопросе (приложение для Android зависит от проекта библиотеки Android, зависит от проекта библиотеки Java). Я считаю, что Open Declaration всегда ведет меня к .java файлам, поэтому все кажется, что работает нормально в этом отношении.

Рефакторинг

Я попытался реорганизовать метод, определенный в классе в библиотеке Android. Всплывающее окно с "проблемой"

Были найдены двоичные ссылки на рефакторированный элемент. Они будут не обновляться, что может привести к проблемам при продолжении.

Однако после нажатия "Продолжить" рефакторинг прошел без каких-либо проблем.

Затем я попытался реорганизовать метод, определенный в классе в библиотеке Java. На этот раз я не получил всплывающих окон, и рефакторинг работал.

Аспект java-библиотеки может работать только в эти дни, потому что ошибки, о которых вы говорили, были исправлены... (Я использую Eclipse 4.2.0 с ADT 20.0.3). Я думал, что добавлю этот ответ, но если он поможет кому-то решить проблемы с Open Declaration, перейдя на .class вместо файла .java.

Ответ 3

Подумай, ты (я) остался слишком долго в Затмении. Android-студия ждет вас (меня).