Использование библиотеки 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-студия ждет вас (меня).