Как прикрепить исходный код библиотеки поддержки Android в Eclipse?

79

Прикрепить исходный код к внешним библиотекам - это здорово. Где найти исходный код пакета поддержки v4 ? Желательно, чтобы это был zip-файл, который можно было бы легко прикрепить к android-support-v4.jarEclipse.

Håvard Geithus
источник
4
imo @andr, ответ - тот, который нужно принять
Амир Уваль

Ответы:

66

После загрузки пакета поддержки из Android SDK Manager вы можете найти исходный код пакета поддержки в папке <android-sdks> / extras / android / support / v4 / src.

Джейкоб Дам
источник
12
В моем случае он хранился в формате C:\Program Files\Android\android-sdk\extras\android\compatibility\v4\src\java. Затем я взял ее содержание (андроид папка) упаковывают его в * .jar с помощью этой команды: jar cf android-support-v4-sources.jar android/. Я прикрепил эту банку к android-support-v4.jar (путь сборки java / настройки библиотеки в eclipse).
Прекрасно
5
Кажется, сейчас это не работает. Как заставить его работать? help.Я использую adt 21.1. Исходный текст документа android-support-v4.jar или исходный код java нельзя изменить. Щелкните правой кнопкой мыши проект, Свойства> Путь сборки Java> Вкладка Библиотеки, Частные библиотеки Android> android-support-v4.jar - Вложение исходного кода: (Нет) - не подлежит изменению. :(
Thupten
3
Хорошо, это работает. Андроид-поддержка-v4.jar нужно быть в Referenced Librariesправой кнопки, Build Path.., Add to Path. Затем Referenced Librariesщелкните правой кнопкой мыши свойства на android-support-v4 и установите источники.
Thupten
Этот ответ полностью отвечает на вопрос ОП. Чтобы прикрепить его к вашему jar-файлу в eclipse, см. Ответ @andr
JRomero
@Thupten, разве ты не ссылаешься дважды тогда, когда хватит одного?
Pacerier
122

Я просто хочу добавить еще один метод подключения исходников для библиотеки поддержки. Для этого требуется ADT версии 20 или новее . Предположительно, этот метод работает для всех JAR, для которых установка местоположения источника / javadoc отключена контейнером. Вот что вам нужно сделать:

  1. В android-support-v4.jarбиблиотеке лежит в libsдиректории вашего проекта. В этом же каталоге создайте обычный файл свойств Java, названный точно так же, как рассматриваемый JAR, но с добавленным .propertiesрасширением. Таким образом, для нашей библиотеки поддержки это будет:
    android-support-v4.jar.properties.

  2. Откройте созданный файл свойств и установите значение свойства, названного srcв соответствии с местом, где могут быть найдены источники для этой библиотеки. В вашем файле должна быть одна строка вроде:

    src=c:/apps/adt-bundle-windows-64bit/sdk/extras/android/support/v4/src
    
  3. Сохраните файл.

  4. Закройте и снова откройте свой проект Android.

  5. Попробуйте перейти к одному из классов поддержки. Теперь вложение с исходным кодом должно работать.

В моем случае отлично сработало.

Одно замечание: если srcэто не абсолютный путь, он будет разрешен, начиная с родительского каталога файла JAR. В качестве примера src=support/srcвозьмем библиотеку поддержки - если ADT будет считать, что исходные коды классов находятся в libs/support/src.

Краткое описание этой функции, написанное ее автором, можно найти здесь .

Если кому-то интересно, как именно .propertiesобрабатывается этот файл, рекомендую прочитать набор патчей №4, особенно. изменения в eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/ internal/project/LibraryClasspathContainerInitializer.java:)

редактировать

Также см. Прекрасный комментарий WindRider о правильном добавлении источников в проект с несколькими библиотеками, на которые есть ссылки.

андр
источник
9
Это «официальный» и рекомендуемый способ сделать это.
Совет директоров
10
Обратите внимание, что если у вас есть большой проект с несколькими библиотеками, на которые есть ссылки, которые, в свою очередь, ссылаются на библиотеку поддержки Android, вы должны убедиться, что все копии android-support-v4.jar являются одними и теми же двоичными файлами. Иначе вы получите странную ошибку «несоответствие контрольной суммы бла бла». Также будет импортирована только одна из этих копий поддерживаемых библиотек, возможно, содержащаяся в папке lib \ проектов библиотеки. Чтобы узнать, какой из них используется, откройте Package Explorer -> Android Dependencies и посмотрите, откуда импортируется поддержка lib. Затем проделайте ту же процедуру не для основного проекта, а для проекта библиотеки.
WindRider
2
Попробовав некоторые из остальных, могу сказать, что это лучший ответ - его следует принять как правильный.
Амир Увал
2
@Simulant - я не эксперт по ActionBar compat lib, но, бегло взглянув на него, я предполагаю, что для его использования вам нужно импортировать его как отдельный проект Android Lib и ссылаться на него как на зависимость в вашем основном проекте, верно? Если это так, вам просто нужно выполнить шаги, описанные здесь для каталога "libs" проекта lib . В этом .jarкаталоге должно быть два файла: android-support-v4.jarи android-support-v7-appcompat.jarдля которых вы должны иметь возможность создавать упомянутые .propertiesфайлы.
andr
5
Если вы используете Windows, убедитесь, что вы используете косую srcчерту в строке.
Scutterman
83

Вот решение для прикрепления источника библиотеки поддержки в Eclipse Juno

Я полагаю, что ваш проект уже есть android-support-v4.jarв вашем «Пути сборки» в разделе «Зависимости Android», но вы не можете прикрепить к нему каталог источников. (в «Приложении к источнику» сказано «Не подлежит изменению»). Решение:

  • Перейти к «Настроить путь сборки»
  • Добавить внешние JAR> YourProject/libs/android-support-v4.jar (я знаю, что ваш проект уже ссылался на него, но не волнуйтесь, просто добавьте его снова).
  • Разверните jar и прикрепите Source к External Jar: android-sdk/extras/android/support/v4/src
  • Перейдите на вкладку «Заказ и экспорт», поднимите внешнюю банку над «Зависимости Android»

Наслаждайтесь навигацией по библиотеке поддержки с исходным кодом!

если у вас есть прикрепленный «Android Test Project» YourProject, он YourProjectTestможет больше не компилироваться. В этом случае вам нужно вернуться в «Порядок и экспорт» и вытащить внешнюю банку под «Зависимости Android», чтобы вернуть все в норму.

Hiep
источник
2
«Путь сборки Java», а не «Путь сборки конфигурации» для меня.
user123321
4
У меня были все необходимые шаги, и это сработало для меня! Последний шаг (заказ) был оставлен в стороне и очень важен.
cottonBallPaws
3
У меня был android-support-v4.jar, указанный в частных библиотеках Android (APL, который был указан выше зависимостей Android), поэтому мне пришлось вытащить только что добавленный .jar над APL
Куитси
1
Для записи, это работает и с другими библиотеками, а не только с библиотекой поддержки. / Captain Obvious
Эмиль Лундберг
2
Тебе не следует этого делать. Это противоречит первоначальной настройке стандартного приложения для Android. Я бы порекомендовал вам использовать «официальное» решение от @andr.
JRomero
16

Ссылаясь на принятый ответ, также можно прикрепить исходный код прямо из каталога без создания файла .jar. На вкладке Путь / библиотеки сборки Java разверните android-support-v4.jar, выделите «Исходное вложение», нажмите «Изменить ...», «Внешняя папка ...», затем укажите на (android-sdk) \ extras \ android \ поддержка \ v4.

Это было проверено с использованием Eclipse Indigo.

Из комментариев:

Проблема невозможности добавить исходный код в библиотеку поддержки, похоже, возникает, если ваша библиотека поддержки расположена в папке «Android Dependencies» вашего проекта. Обходной путь - на той же вкладке «Путь / библиотеки сборки Java», нажмите «Добавить внешние JAR-файлы ...» и найдите файл .jar в пути (android-sdk) \ extras \ android \ support \ v4. Затем он появится в настройках вашего проекта в новой папке «Ссылки на библиотеки».

счастливый
источник
5
Если у вас, конечно, нет ошибки, которая не позволяет вам прикреплять исходники к jar.
Ixx 01
1
Это было бы здорово, но моя кнопка «изменить» неактивна: /. Это ошибка, о которой вы упомянули lxx? Нашли решение?
промежуток времени
3
Все выделено серым цветом, написано «не подлежит изменению»
Мистер Смит
2
Проблема невозможности добавить исходный код в библиотеку поддержки, похоже, возникает, если ваша библиотека поддержки находится в папке «Android Dependencies» вашего проекта. Обходной путь - на той же вкладке «Путь / библиотеки сборки Java», нажмите «Добавить внешние JAR-файлы ...» и найдите файл .jar в пути (android-sdk) \ extras \ android \ support \ v4. Затем он появится в настройках вашего проекта в новой папке «Ссылки на библиотеки». Затем вы можете прикрепить источник к этому файлу .jar, как указано в исходном ответе.
happydude
2

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

Например:

../android-support-v4.jar
../android-support-v4-src.jar

Создать исходный jar-файл и прикрепить его просто:

  1. cd к path_to_android_sdk / extras / android / compatibility / v4 /
  2. Используйте вашу любимую программу для архивирования файлов, например 7-zip, для создания архивного файла и назовите его android-support-v4-src.jar. Первой папкой в ​​банке должна быть / scr.
  3. Скопируйте файл в свой проект, в этом примере он находится в той же папке, что и jar с кодом.
  4. В Eclipse прикрепите исходную банку в свойствах проекта.
Fishjd
источник
Спасибо за Ваш ответ. Для создания jar-архива также можно использовать программу jar, которая включена в JDK.
Håvard Geithus
1

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

Сначала откройте класс, IDE попросит вас изменить прикрепленный источник.

Hisenberg
источник
0

Процесс прикрепления src и doc из пути сборки работает для некоторых, а для некоторых (например, меня) - нет. некоторые ключевые вещи, о которых следует помнить

  1. Убедитесь, что вы находитесь в проводнике пакетов, а не в навигаторе проекта .

  2. Если вы поместили файл android-support-v4.jar в папку libs вашего проекта. отличный.

  3. Щелкните правой кнопкой мыши по банке, Построить путь .. Добавить в путь. (если Добавить в путь не отображается, значит, он уже добавлен. Вы увидите путь настройки ..)

  4. В результате шага 3 в дереве проводника пакетов появится новая папка с названием « Библиотеки ссылок» . Откройте это дерево и найдите там android-support-v4.jar. Щелкните правой кнопкой мыши по этой банке в свойствах ссылочных библиотек . Затем установите вложение Java Source Attachment и Javadoc Location.

  5. Вы сделали.

Путь к моему вложению с исходным кодом Java. (Его внешнее расположение)

C: / Пользователи / thupten / adt-bundle-windows-x86_64-20130514 / SDK / extras / android / support / v4 / src

Я использовал документ веб-сайта Android для определения местоположения документа Java

http://developer.android.com/reference/android/support/v4/app/package-summary.html

Thupten
источник
0

Я нашел это для себя:

Для основной библиотеки: android.jar:

SRC: SDK / источники / android-19 документ: SDK / документы / ссылка /

Для поддержки lib: android-support-v4.jar: (перед этим мы должны добавить android-support-v4.jar как внешнюю банку (Свойства проекта -> Путь сборки Java -> Библиотеки, затем на вкладке «Порядок и экспорт» подтянитесь) эта библиотека раньше, чем частные библиотеки Android)):

src: sdk / extras / android / support / v4 / src / java doc: http://developer.android.com/reference/android/support/v4/app/package-summary.html (не уверен)

ультраон
источник
0

После того как вы обновили SDK и загрузили в него документацию:

  • Импортируйте проект библиотеки поддержки в проводник пакетов.
  • Создайте в библиотеке папку и назовите ее примерно так ext-jars.
  • Переместить android-support-v4.jarв ext-jarsпапку.

    введите описание изображения здесь

  • Щелкните проект правой кнопкой мыши и выберите "Свойства".
  • Щелкните Путь сборки Java в левом меню, затем выберите вкладку Библиотеки.
  • Нажмите, Add JARs...затем разверните проект и выберите файл jar, который вы уже переместили в папку ext-jars.

введите описание изображения здесь

  • Разверните добавленную банку и выберите, Source attachmentзатем нажмите Edit.
  • Выберите, External locationзатем нажмитеExternal Folder...
  • Выберите исходную папку для Support v4, которая находится в [sdk-path]/extras/android/support/v4/src

введите описание изображения здесь

  • Выберите, Javadoc locationнажмите, Editзатем выберите, Javadoc URLзатем нажмите Browse...и выберите местоположение javadoc для поддержки v4, которое находится в[sdk-path]/docs/reference/

введите описание изображения здесь - Выберите Order and Exportвкладку и отметьте android-support-v4.jarтолько что добавленные.

Я предлагаю вам также очистить проект и снова открыть Eclipse.

MDP
источник