Как прикрепить исходник к android.jar - PullRequest
73 голосов
/ 22 апреля 2011

Я новичок в Android.Я работаю в ОС Windows с Eclipse IDE.В моем простом приложении есть счетчик, который заполняет список из столбца базы данных.Когда я щелкаю по классу счетчика, редактор файлов говорит, что источник не найден, и у android.jar нет вложенного источника.

Я скачал исходный код и поместил его в это место:

android-sdk-windows\platforms\android-8

Затем я подключил этот источник с помощью следующих шагов:

щелкните правой кнопкой мыши проект => путь сборки => настроить путь сборки => библиотеки => вложение источника => указать путьзагруженного исходного кода.

Но я не получил никакого решения для отладки.Опять же, при нажатии на спиннер, он открывает отладку, что у android.jar нет исходного прикрепления.

Ответы [ 7 ]

89 голосов
/ 15 июля 2012

Теперь это действительно просто!

Перейдите в Window-> Android SDK Manager и установите «Sources for Android SDK».

Теперь попробуйте щелкнуть мышкой по некоторому идентификатору Android, и выполучить обычную страницу «без источника».Нажмите «Прикрепить источник» и получите возможность выбрать внешнюю папку.

Теперь перейдите к /home/me/android-sdks/sources/android-16 (или там, где установлен SDK; это по умолчанию) и нажмите «ОК».

Надо немного подумать, а затем отобразить источник!Йеай!

85 голосов
/ 19 октября 2011

Если вам не нужны более старые исходные коды API, вам, вероятно, лучше ответит Тиммм. Если вам нужны источники старше 14 лет, читайте дальше ...

В Eclipse просто перейдите на

Помощь -> Установить новое программное обеспечение

затем добавьте сайт обновления

http://adt -addons.googlecode.com / svn / trunk / source / com.android.ide.eclipse.source.update /

и выполните действия, чтобы установить его.

Это с радостью предоставит источники для всех установленных версий API и отлично работает для меня. Еще немного документации здесь

http://code.google.com/p/adt-addons/

ищите заголовок Источники Android

14 голосов
/ 25 декабря 2012

Если добавление папки android-sdks/sources/android-17 в качестве внешнего источника не работает (как в моем случае), вы можете попытаться создать папку android-sdks/platforms/android-17/sources/android-17, скопировать в нее источники и перезапустить eclipse (у меня есть eclipse Juno Service Release 1). Только этот способ работает для меня.

Шаги, чтобы сделать это для Android-17:

  1. Перейдите в папку установки adroid-sdk, для меня это d:\ws\android-sdks\
  2. Скопируйте android-17 исходную папку из android-sdks\sources\android-17\ в android-sdks\platforms\android-17\sources\ (вам необходимо создать папку sources здесь вручную), поэтому окончательный путь к источникам должен быть: android-sdks\platforms\android-17\sources\android-17\
  3. перезагрузите затмение, к нему должны автоматически подключаться источники для android-17

UPD: то же решение с symlinks:

Windows Vista + (спасибо @ saleemrashid1 ​​за упоминание mklink в комментариях):

1. cd platforms\android-17
2. mklink /D "sources\android-17" "..\..\..\sources\android-17"

Для Unix-систем (@Joe comment):

отлично работает для создания каталога и символической ссылки "sources / android-XX" на "../../../sources/android-XX":

mkdir platforms/android-19/sources && 
ln -s ../../../sources/android-19 platforms/android-19/sources/android-19. 
13 голосов
/ 29 апреля 2011

Чтобы прикрепить исходный код для android.jar, вы можете следовать руководству по ссылке ниже: http://android.opensourceror.org/2010/01/18/android-source/ Убедитесь, что выбрали правильную версию платформы.

Если вы столкнулись с трудностями при работе со счетчиком, попробуйте получить пример кода и посмотрите, как он работает: http://developer.android.com/resources/samples/get.html

Удачи:)

Обновление

Этот ответ устарел, примите во внимание другие ответы.

1 голос
/ 09 июня 2014

То, что сработало для меня, следует ответу, найденному в Android-программировании Мурача.Я застрял, пытаясь отладить, и пытался отработать его около 3 часов, прежде чем перейти к следующей странице (в буквальном смысле), где говорилось: «Иногда Eclipse будет отображать сообщение об отсутствии источника, потому что ....» (-headdesk -)

Моим решением было включить пошаговую фильтрацию и добавить пакеты, которые я хотел пропустить при отладке.Очевидно, что Eclipse иногда проходит по всем библиотекам исходного кода, когда все, что вам нужно, это чтобы он прошел по вашему коду.Вы можете обойти это, добавив пакеты, которые хотите пропустить, в фильтр.По словам Мурача, вы просто делаете это методом проб и ошибок, начиная с выбора всех пакетов и их добавления.Продолжая отладку, вы можете обнаружить, что вам нужно добавить больше пакетов в фильтр.

Конкретные шаги: 1. Включите пошаговую фильтрацию;нажмите кнопку на панели инструментов вверху, которая выглядит следующим образом: http://i57.tinypic.com/x3iccp.png 2. Перейдите в Окно -> Настройки, затем в диалоговом окне Предпочтения выберите Java -> Отладка -> Шаг фильтрации 3. Выберитевсе пакеты.4. Чтобы добавить дополнительные фильтры, нажмите «Добавить фильтр», введите имя пакета с. * В конце и нажмите OK.Для начала Murach рекомендует добавить следующие распространенные пакеты: --android. * --Com.android. * --Com.google. * --Dalvik. * --Libcore. * --Org.apache. * Поэтому добавьте один из следующих пакетов:В этих пакетах нажмите «Добавить фильтр», введите «android. *» и нажмите «ОК».В моих настройках Step Filter появились все следующие пакеты:

android. , android.app. , com.android. , com.google. , com.ibm. , com.sun. , dalvik. , java. , javax. , jrockit. , libcore. , org.apache. , org.omg. , sun. , sunw. *, ((И этот последний класс, а не пакет)) java.lang.ClassLoader

I«Использовать пошаговые фильтры» отмечен вверху диалогового окна, а «Пошаговые фильтры» отмечен внизу.Нажмите «Применить», затем «ОК», чтобы закрыть диалоговое окно.Это должно работать.

Удачи!

0 голосов
/ 14 февраля 2014

Для меня единственным решением, которое сработало, был ответ fsbmain .Слава ему.Я не могу комментировать его решение из-за моей низкой репутации.Но я хочу поделиться своими знаниями;)

Я работаю над окнами и не хочу копировать все дерево исходников в другое место.И снова копировать обновления и т. Д. Поэтому я воспользовался возможностью вставить символическую ссылку, которая работает с Windows Vista, как брелок (или как Linux).Для Linux вы должны посмотреть комментарий Джо под ответом fsbmain.

Предполагается, что у вас есть платформа в D: \ sdk \ platform \ android-19 .Теперь вам нужно создать подкаталог sources и после этого создать относительную ссылку на папку реальных источников.

D:\sdk\platforms\android-19>mkdir sources
D:\sdk\platforms\android-19>cd sources
D:\sdk\platforms\android-19\sources>mklink /D android-19 ..\..\..\sources\android-19

Теперь перезапустите Eclipse ... Готово!

0 голосов
/ 07 июня 2013

Я добавил appengine sdk и некоторые другие источники, и это уничтожило мою ADT: - (

Я видел, что для android-16 и android-17 библиотеки платформ, загруженные SDK Manager, начали переходить на ./sdk/sources, тогда как до моего добавления appenginge sdk SDK Manager отправлял платформы на ./sdk/platforms.

Похоже, что изменение является результатом appengine sdk, но для ADT API-интерфейсы платформ должны определяться ./sdk/platforms

Путь ./sdk/sources выглядит как более общее местоположение Java и, вероятно, является «правильным» путем. Таким образом, Android, как обычно, является проблемой. Я был совершенно уверен, что с этого момента мне понадобятся оба ./sdk/sources и ./sdk/platforms, в зависимости от того, что я компилировал.

Итак, я переместил все из ./sdk/sources в ./sdk/platform, удалил ./sdk/sources и затем создал ссылку 'cd sdk && ln -s sources sources'

Теперь все работает; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...