Невозможно отладить библиотечные проекты с ADT v14 - источник не найден - PullRequest
29 голосов
/ 26 октября 2011

С тех пор, как мои текущие проекты были обновлены для использования новых инструментов R14 в Eclipse, я теперь не могу отлаживать любой код, существующий в моих проектах библиотеки.

Когда я сталкиваюсь с точкой останова в коде проекта моей библиотеки, вместо того, чтобы Eclipse открывал исходный исходный файл, он открывает доступную только для чтения копию исходного файла, содержащегося в JAR, с сообщением «Источник не найден».

Я искал решение этой проблемы, но пока ничего не встречал. У кого-нибудь еще есть предложения? Это большая боль, что невозможно отладить.

EDIT

Проблема вернулась, и я больше не могу отлаживать. Я не менял никаких настроек проекта или чего-то еще. Очень расстраивает.

Ответы [ 7 ]

44 голосов
/ 03 ноября 2011

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

http://code.google.com/p/android/issues/detail?id=20731

  1. Начните отладку и продолжайте, пока не достигнете точки останова (и точно получите файл .class вместо .java, который вы хотели бы иметь)
  2. Щелкните правой кнопкой мыши в представлении «Отладка» перспективы «Отладка» (например, в стеке вызовов) и выберите «Изменить путь поиска источника»
  3. Добавьте все ваши проекты выше «По умолчанию», через «Добавить ...»> «Проект Java»> «Выбрать все»

(я использую предварительный просмотр ADT 15.0.2 от http://tools.android.com/download)

17 голосов
/ 28 октября 2011

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

Оказывается, проблема в порядке сборки ваших проектов (мой был в любом случае).Поскольку ADT / SDK v14 изменил способ ссылки на библиотечные проекты, порядок сборки должен быть правильным.Убедитесь, что все библиотеки, которые использует ваше приложение, созданы в первую очередь.Я просто переместил папки «src» и «gen» для каждого из моих проектов в конец, и теперь он сначала собирает библиотеку, и я могу отлаживать ее и просматривать исходные файлы библиотеки через основной проект.

Если кто-то не знает, где это сделать, в Eclipse щелкните правой кнопкой мыши свой проект и «Build Path», а затем нажмите «Configure Build Path».Затем на вкладке «Заказ и экспорт» переместите две папки для вашего проекта в конец списка под вашими библиотеками.Я сделал это для всех моих проектов и библиотечных проектов.

Вы также можете сделать это глобально в Eclipse из Windows-> Preferences-> General-> Workspace-> Build Order и переместив свои библиотечные проекты наверх.Я думаю, что порядок сборки, определенный в каждом проекте, переопределит это, так что вы можете сделать это в обоих местах, чтобы решить проблему сейчас и для будущих проектов.

Я надеюсь, что это полезно для вас и всех остальныхиспытывает эту досадную проблему.:)

Спасибо, Эд

2 голосов
/ 13 ноября 2012

У меня в Eclipse Juno сработало следующее:

В Свойствах проекта / Путь сборки Java:

  • На вкладке "Проекты" добавлены проекты моей библиотеки.
  • На вкладке «Порядок и экспорт» переместил проекты моей библиотеки наверх и проверил их

Не уверен, что это актуально, но инструменты Android SDK версии 20.0.3 и инструменты платформы Android SDK 14.

Удачи.

2 голосов
/ 31 октября 2012

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

Прежде всего, проблема проявилась в том, что папка 'gen' использовалась как та, в которой находился источник. Чтобы проверить, является ли это той же проблемой, перейдите в проект приложения, откройте зависимости Android и посмотрите свойства зависимостей вашей библиотеки. Путь к местоположению сказал /libraryprojectname/gen.

Если это также ваша проблема, перейдите на вкладку «Заказ и экспорт» каждого библиотечного проекта и переместите элемент «gen» под элементом «src». Как только вы нажмете OK, Eclipse будет работать немного, и когда вы проверяете свойства зависимостей Android, путь к местоположению должен сказать: / libraryprojectname / src. Открыть нажмите на зависимость и откройте любой класс внутри банки. Это должно показать источник.

Я использую плагин ADT 20.0.3 с Android SDK Tools 20.0.3 и Android SDK Platform Tools 14.

0 голосов
/ 05 апреля 2013

Эта проблема также возникает с выпуском 21 ADT внутри Juno.В качестве обходного пути, в представлении «отладка» перспективы отладки (где вы видите потоки и трассировки вызовов методов), щелкните правой кнопкой мыши и отредактируйте исходный путь поиска.

0 голосов
/ 27 октября 2011

Иногда это случается со мной.Не уверен насчет причины, но я решил:

Удалите основной проект из затмения.- Closs Eclipse - Удалить файл JAR в проекте библиотеки - Открыть Eclipse - Дождаться компиляции проекта библиотеки - Импортировать основной проект

0 голосов
/ 27 октября 2011

Я предполагаю, что вы работаете над библиотечным проектом, и вы поставили точку торможения.Попробуйте это: В главном проекте откройте Библиотечные проекты -> [yourlibrary.jar] -> [yourfile.class] в Package Explorer, а затем в файле .class установите точки торможения.Это работает для меня по крайней мере:)

...