code

Android Studio : javadoc 첨부 방법

codestyles 2020. 12. 12. 10:54
반응형

Android Studio : javadoc 첨부 방법


매우 사소한 질문 일 수 있지만 android 프로젝트에서 로컬 jar 종속성 (libs 폴더에 있음)이있는 javadoc / source를 첨부하는 옵션을 찾을 수 없습니다. 나는 내가 그런 간단한 일에 한 시간을 보냈다는 것을 믿을 수 없다 :(

Google 검색 결과는 Android 문서 추가 또는 Eclipse에서 javadoc 추가에 대해 알려줍니다. 그것은 내가 찾고있는 것이 아닙니다!


오랫동안 다른 해결책을 찾을 수 없기 때문에 방금 해결책을 찾았습니다.

가정하십시오 :

  1. lib 이름은 libxxx.jar입니다.
  2. javadoc 이름은 docs.zip입니다.

.idea / libraries 폴더에서 libxxx.xml을 찾을 수 있습니다. JAVADOC를

<JAVADOC>
  <root url="jar://C:/yourpath/doc.zip!/" />
</JAVADOC>

그런 다음 ctrl + alt + y를 눌러 프로젝트를 동기화합니다. ( "Sync Project with Gradle files"를 실행하지 마십시오. 변경 사항이 삭제됩니다.)


나는 gradle 동기화 후 javadocs를 잃지 않고 추가 할 수있는 방법을 발견하고 테스트했습니다.

  1. 프로젝트 패널 > 외부 라이브러리 > lib-name을 마우스 오른쪽 버튼으로 클릭합니다.
  2. 라이브러리 속성을 클릭 합니다. Lib 소품
  3. 문서 URL 지정을 클릭하십시오.
  4. 그리고 URL을 지정하십시오. 내 기계의 경우file:///opt/android-sdk/extras/google/google_play_services/docs/reference 문서 URL 추가
  5. 결과는 다음과 같습니다. jdoc 추가
  6. 프로젝트 동기화 후 Google Play 서비스 의 javadoc을 탐색 할 수 있습니다. 구글 플레이 서비스지도 javadoc

노트 :

이것은 Jason이 식별 한 xml에 동일한 JAVADOC 항목을 배치 했지만 gradle과 동기화 한 후 사라지지 않습니다.


것이 가능하다:

  1. 열다 Project structure
  2. 원하는 종속성으로 이동
  3. 스크린 샷에서 버튼을 누르고 폴더 또는 파일 제공

스크린 샷 1

소스를 첨부하는 또 다른 방법 :

  1. 라이브러리에서 클래스로 이동 (클래스 이름 위로 마우스를 이동하고 CMD + 왼쪽 클릭 또는 CMD + B 수행)
  2. "소스 첨부 .."편집기의 오른쪽 상단에 클래스의 디 컴파일 된 버전 메뉴가 표시됩니다.

스크린 샷 2


Matyas의 답변에 문제가 있어서 외부 라이브러리 목록 에 내 로컬 .jar 라이브러리가 표시되지 않았습니다 .

해결책은 여기에 언급되어 있습니다 : https://code.google.com/p/android/issues/detail?id=73087#c26

  1. "Structure"탭을 마우스 오른쪽 버튼으로 클릭하고 "Split Mode"를 선택합니다 (그러면 "Project"및 "Structure"탭을 동시에 열 수 있음).
  2. "프로젝트"및 "구조"탭을 동시에 엽니 다.
  3. "프로젝트"탭에서 "Android"퍼스펙티브를 선택한 다음 모듈 폴더 (예 : "앱")를 선택합니다.
  4. "Structure"창에서 이제 로컬 * .jar를 포함한 모든 라이브러리 목록을 볼 수 있습니다.

Matyas의 답변으로 계속하십시오.

  1. 원하는 라이브러리를 마우스 오른쪽 버튼으로 클릭하고 "라이브러리 속성 ..."을 선택합니다.
  2. * .jar와 javadocs가 로컬에있는 경우 "추가"버튼 (녹색 "+")을 누르고 디스크에서 파일을 검색 할 수 있습니다 ( "file : //"경로를 수동으로 입력 할 필요가 없음).

내 게시 당시 여전히 현재 문제는 다음과 같습니다.

https://code.google.com/p/android/issues/detail?id=73087


몇 가지 조사 끝에 나는 이것을 우연히 발견했습니다.

https://github.com/xujiaao/AARLinkSources

마법처럼 작동합니다!


나도 이것에 너무 많은 시간을 낭비했다 ...

Here's a gradle task which finds source and javadoc by location/naming convention, and registers them in the .idea files on sync. It belongs in the root gradle file's allProjects section. As-is, it expects to find [projectname]/libs/lib.jar next to lib-sources.jar and/or lib-javadoc.jar. Also, as noted in comments, if your javadocs not pathed at "/" inside the jar, you may need to change the script to add "docs/html" (for example) at the end of "jar://$doc!/".

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"
                        }
                    }
                }
            }
        }
    }
}

Also, if you are using jcenter or mavencentral, javadocs and sources should work for downloaded jars without using that task, but you may have to add this in each non-root gradle file:

apply plugin: 'idea'

idea{
    module {
        downloadJavadoc = true
        downloadSources = true
    } 
}

There is a solution, This procedure take place through terminal ,

I have tested solution in MAC OS.

1) Move to your project folder

2) ls -al (to show hidden files)

3) Move to .idea folder , Command : cd .idea

4) Move to libraries folder , Command : cd libraries/

5) Now you can see list of all xml files for your libs or jars. Edit it like , vi open androidasync_2_1_7.xml

6) In the editor screen , For inserting

Press i 

Now you see <SOURCES /> tag we have to provide a path here like,

<SOURCES>
  <root url="file://$PROJECT_DIR$/androidasync/src/main/java" />
</SOURCES>

For exiting

Press Esc

    :wq //for exiting and saving
    :q! //for exiting without saving

7) Restart Android studio (Sometime it needed also sync gradle).


Personally tested successfully!

1.Project Structure(ctrl+alt+shift+s)

2.SDK Location

3.JDK Location

4.UnCheck "Use embedded JDK(recommended)"

5.Select your own jdk path(My Path:C:\Program Files\Java\jdk1.8.0_111)

6.Synchronized(ctrl+alt+y)

success


compileSdkVersion 23buidl.gradle에서 사용하고 에서 SDK 23 문서 파일과 소스 파일을 다운로드 한 경우 Android 스튜디오 SDK manager에서 Android API 및 Java API 문서 및 소스가 모두 자동으로 표시 되므로 수동으로 설정할 필요가 없습니다.

참고 URL : https://stackoverflow.com/questions/20994336/android-studio-how-to-attach-javadoc

반응형