Невозможно отлаживать проекты библиотек с помощью ADT v14 — источник не найден

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

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

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

ИЗМЕНИТЬ

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


person hooked82    schedule 26.10.2011    source источник
comment
У меня такая же проблема! Кто-нибудь найдите исправление, так как у меня зудит палец вверх!   -  person JPM    schedule 26.10.2011
comment
Та же проблема!! Ни одно из решений не работает для меня. Из-за этого я больше не могу отлаживать файлы библиотеки (не могу добавлять или удалять точки останова из файла класса)   -  person Dan Harvey    schedule 07.02.2012
comment
Кто-нибудь нашел рабочее решение для этого? Принятый ответ теперь работает.   -  person w.donahue    schedule 24.02.2012


Ответы (7)


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

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

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

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

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

Спасибо, Эд

person ssuperz28    schedule 27.10.2011
comment
Что ж, после перемещения папок src и gen в конец порядка сборки отладка по-прежнему была невозможна. После этого я удалил ссылку на проект библиотеки из раздела на вкладке Android, где вы добавляете проекты библиотеки. После добавления проекта библиотеки я теперь могу отлаживать. Я не уверен, какая комбинация вещей решила это, но я считаю, что изменение порядка сборки помогло. Спасибо за помощь - person hooked82; 28.10.2011
comment
Рад, что смог помочь. Хорошая информация об удалении и повторном добавлении библиотеки в проект. Мне нравится, что они лучше ссылаются на библиотеки, но Google, вероятно, должен был немного лучше очистить его, чтобы избежать всех этих небольших проблем, когда все обновлялись. - person ssuperz28; 28.10.2011
comment
Как и обновление, проблема вернулась, поэтому я не могу сказать, что нашел решение. - person hooked82; 30.10.2011
comment
@ hooked82 Ваше предложение удалить библиотеку и добавить ее обратно также помогло мне. Спасибо hooked82 и ssuperz28! - person RyanM; 01.11.2011
comment
@hooked82 Вам придется удалять и заново добавлять библиотеку каждый раз, когда вы очищаете / перестраиваете, иначе проблема вернется. э. - person RyanM; 01.11.2011
comment
Какая ПИТА, спасибо RyanM. Кто-нибудь знает, есть ли известная проблема для этого в Google? Это похоже на 2 шага назад. - person hooked82; 01.11.2011
comment
@hooked82, см. Ответ Каффа о поданной ошибке. В ссылке также есть обходной путь, который хорошо работает для меня. - person cottonBallPaws; 06.01.2012
comment
Это помогает, но только если папка src остается над папкой gen. - person georgij; 09.01.2012

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

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)

person Kuffs    schedule 03.11.2011
comment
Комментарий 2 из приведенной выше ссылки прекрасно сработал для меня. code.google.com/p/android/issues/detail? id=20731#c2 - person cottonBallPaws; 06.01.2012
comment
Еще одно замечание, это сработало именно для меня, я просто выбрал свой текущий тестовый проект и проект библиотеки и переместил его выше значения по умолчанию. +1 Спасибо! - person Dave; 08.06.2012

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

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

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

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

person rob    schedule 31.10.2012

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

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

  • Во вкладке Projects добавил свои библиотечные проекты.
  • На вкладке «Заказ и экспорт» переместил мои библиотечные проекты наверх и проверил их.

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

Удачи.

person JulianSymes    schedule 13.11.2012
comment
Этот порядок работал для меня: (сверху) зависимости Android, частные библиотеки Android, SRC, GEN - person Marqs; 20.11.2013

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

person Marcin Waśniowski    schedule 27.10.2011
comment
Я не пробовал этот подход, но не считаю его приемлемым решением для правильной отладки приложения. Хотя спасибо за подсказку - person hooked82; 28.10.2011

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

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

person Miguel Sesma    schedule 27.10.2011

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

person Snicolas    schedule 05.04.2013