Android Studio: как подключить javadoc
Это может быть очень тривиальный вопрос, но я не смог найти какой-либо вариант подключения javadoc/source с локальными зависимостями jar (в папке libs) в проекте android. Не могу поверить, что я потратил час на такие простые вещи:(
Результат поиска Google просто рассказывает о добавлении документации по Android и добавлении javadoc в eclipse. Это не то, что я ищу!
Ответы
Ответ 1
Я нашел решение только сейчас, так как я не могу найти какое-либо другое решение в течение длительного времени.
предположим:
- ваше имя lib: libxxx.jar
- Имя javadoc - docs.zip
в папке .idea/libraries, вы можете найти libxxx.xml. замените JAVADOC на
<JAVADOC>
<root url="jar://C:/yourpath/doc.zip!/" />
</JAVADOC>
затем ctrl + alt + y, чтобы синхронизировать проект. (Не выполнять "Синхронизировать проект с Gradle файлами", он удалит изменения)
Ответ 2
Я нашел и протестировал способ, которым мы можем добавить javadocs, не теряя их после синхронизации gradle.
- Щелкните правой кнопкой мыши панель проекта > Внешние библиотеки > имя-lib
- Нажмите Свойства библиотеки.
![Lib props]()
- Нажмите ссылку URL документации
- И укажите URL-адрес. Для моей машины это было
file:///opt/android-sdk/extras/google/google_play_services/docs/reference
![Добавить doc url]()
- Результат:
![added jdoc]()
- И после синхронизации проекта я мог просматривать javadoc сервисов Google Play
![google play services maps javadoc]()
Примечание:
Это помещало ту же запись JAVADOC в xml, идентифицированную Jason, но не исчезает после выполнения синхронизации с gradle
Ответ 3
Возможно:
- Открыть
Project structure
- Перейдите к зависимости, которую вы хотите
- Нажмите кнопку со снимка экрана и укажите папку или файл.
![screenshot 1]()
Другой способ подключения источников:
- Шаг в класс из библиотеки (наведите указатель мыши на имя класса и сделайте CMD + левый клик или CMD + B)
- Вы увидите декомпилированную версию класса там меню в верхней правой части редактора "Прикрепить источники.."
![screenshot 2]()
Ответ 4
По-прежнему актуальна проблема с моей публикацией:
https://code.google.com/p/android/issues/detail?id=73087
Ответ 5
У меня возникла проблема с ответом от Matyas, что я не видел свою локальную библиотеку .jar в списке "Внешние библиотеки", потому что он только показывает вложенные библиотеки maven.
Решение упоминается здесь: https://code.google.com/p/android/issues/detail?id=73087#c26
- Щелкните правой кнопкой мыши на вкладке "Структура" и выберите "Разделить режим" (чтобы одновременно открывать вкладки "Проект" и "Структура" ).
- Откройте одновременно вкладки "Проект" и "Структура".
- На вкладке "Проект" выберите перспективу "Android", а затем выберите папку вашего модуля (например, "приложение" ).
- В окне "Структура" вы должны увидеть список всех библиотек, включая локальный *.jar
Продолжайте, как в ответ от Matyas:
- Щелкните правой кнопкой мыши нужную библиотеку и выберите "Свойства библиотеки..."
- Если у вас есть *.jar с javadocs локально, вы можете нажать кнопку "Добавить" (зеленый "+" ) и найти файл на своем диске (вам не нужно набирать путь "file://" вручную).
Ответ 6
После некоторого расследования я наткнулся на это:
https://github.com/xujiaao/AARLinkSources
Работает как магия!
Ответ 7
Я потратил столько времени на это тоже...
Здесь gradle задача, которая находит исходный код и javadoc по соглашению о местоположении/названии и регистрирует их в файлах .idea при синхронизации. Он принадлежит корневому файлу allProjects gradle. As-is, он ожидает найти [projectname]/libs/lib.jar рядом с lib-sources.jar и/или lib-javadoc.jar. Кроме того, как отмечалось в комментариях, если ваши javadocs не были помещены в "/" внутри банки, вам может потребоваться изменить script, чтобы добавить "docs/html" (например) в конце "jar://$док!/" .
allprojects {
task addJavaDoc {
afterEvaluate {
// Specify paths, this will be run per non-root project
def projectDir = project.getProjectDir().getCanonicalPath()
def rootDir = project.getRootDir().getCanonicalPath()
def lib = projectDir + '/libs'
// println lib // Uncomment this to troubleshoot
// Get any jar dependencies register in the lib folder
fileTree(include: ['*.jar'], exclude: ['*-source.jar', '*-javadoc.jar'], dir: lib ).each { File jar ->
def jarName = jar.getName()
def moduleName = jarName.substring(0, jarName.lastIndexOf("."))
// IntelliJ does this to file names when making the xml files
def escapedName = moduleName.replace("-", "_").replace(".", "_")
def xmlFile = "$rootDir/.idea/libraries/${escapedName}.xml"
// println xmlFile // Uncomment this to troubleshoot
if (new File(xmlFile).exists()) {
['javadoc', 'sources'].each {String docType ->
// Get sources or java doc by naming convention, (expects name-sources or name-javadoc
def doc = "$lib/$moduleName-${docType}.jar"
// println doc // Uncomment this to troubleshoot
if(new File(doc).exists()) {
def xml = new XmlParser().parse(xmlFile);
def xmlTag = docType.toUpperCase()
// Perform xml replacement by convention
xml.library[xmlTag].replaceNode {
"$xmlTag" {
root(url: "jar://$doc!/")
}
}
// Write out changes
new XmlNodePrinter(new PrintWriter(new FileWriter(xmlFile))).print(xml)
// Notify that changes worked
println "Fixed up reference to $doc"
}
}
}
}
}
}
}
Кроме того, если вы используете jcenter или mavencentral, javadocs и источники должны работать для загруженных баночек без использования этой задачи, но вам, возможно, придется добавить это в каждый файл без root gradle:
apply plugin: 'idea'
idea{
module {
downloadJavadoc = true
downloadSources = true
}
}
Ответ 8
Существует решение, эта процедура выполняется через терминал,
Я тестировал решение в MAC OS.
1) Перейдите в папку проекта
2) ls -al
(для отображения скрытых файлов)
3) Перейдите в папку .idea
, Command: cd.idea
4) Переместитесь в папку libraries
, Command: cd libraries/
5) Теперь вы можете просмотреть список всех xml файлов для ваших библиотек или баннеров. Отредактируйте его как vi open androidasync_2_1_7.xml
6) На экране редактора,
Для вставки
Press i
Теперь вы видите тег <SOURCES />
, который мы должны указать здесь, например,
<SOURCES>
<root url="file://$PROJECT_DIR$/androidasync/src/main/java" />
</SOURCES>
Для выхода из
Press Esc
:wq //for exiting and saving
:q! //for exiting without saving
7) Перезапустите Android-студию (иногда требуется синхронизация gradle).
Ответ 9
Лично протестировано успешно!
1. Структура проекта (ctrl + alt + shift + s)
2.SDK Местоположение
3.JDK Местоположение
4.UnCheck "Использовать встроенный JDK (рекомендуется)"
5.Выберите свой собственный путь jdk (Мой путь: C:\Program Files\Java\jdk1.8.0_111)
6.Synchronized(Ctrl + Alt + у)
успех
Ответ 10
в студии Android, если вы используете compileSdkVersion 23
в buidl.gradle, и вы загрузили файл документа и исходный файл SDK 23 в SDK manager
, API android API и java API doc и источник будут отображаться автоматически, вам не нужен ручной набор.