Подтвердить что ты не робот

Android Studio: как подключить javadoc

Это может быть очень тривиальный вопрос, но я не смог найти какой-либо вариант подключения javadoc/source с локальными зависимостями jar (в папке libs) в проекте android. Не могу поверить, что я потратил час на такие простые вещи:(

Результат поиска Google просто рассказывает о добавлении документации по Android и добавлении javadoc в eclipse. Это не то, что я ищу!

4b9b3361

Ответ 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

Ответ 5

У меня возникла проблема с ответом от Matyas, что я не видел свою локальную библиотеку .jar в списке "Внешние библиотеки", потому что он только показывает вложенные библиотеки maven.

Решение упоминается здесь: https://code.google.com/p/android/issues/detail?id=73087#c26

  • Щелкните правой кнопкой мыши на вкладке "Структура" и выберите "Разделить режим" (чтобы одновременно открывать вкладки "Проект" и "Структура" ).
  • Откройте одновременно вкладки "Проект" и "Структура".
  • На вкладке "Проект" выберите перспективу "Android", а затем выберите папку вашего модуля (например, "приложение" ).
  • В окне "Структура" вы должны увидеть список всех библиотек, включая локальный *.jar

Продолжайте, как в ответ от Matyas:

  1. Щелкните правой кнопкой мыши нужную библиотеку и выберите "Свойства библиотеки..."
  2. Если у вас есть *.jar с javadocs локально, вы можете нажать кнопку "Добавить" (зеленый "+" ) и найти файл на своем диске (вам не нужно набирать путь "file://" вручную).

Ответ 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 и источник будут отображаться автоматически, вам не нужен ручной набор.