Android Studio : javadoc 첨부 방법
매우 사소한 질문 일 수 있지만 android 프로젝트에서 로컬 jar 종속성 (libs 폴더에 있음)이있는 javadoc / source를 첨부하는 옵션을 찾을 수 없습니다. 나는 내가 그런 간단한 일에 한 시간을 보냈다는 것을 믿을 수 없다 :(
Google 검색 결과는 Android 문서 추가 또는 Eclipse에서 javadoc 추가에 대해 알려줍니다. 그것은 내가 찾고있는 것이 아닙니다!
오랫동안 다른 해결책을 찾을 수 없기 때문에 방금 해결책을 찾았습니다.
가정하십시오 :
- lib 이름은 libxxx.jar입니다.
- 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를 잃지 않고 추가 할 수있는 방법을 발견하고 테스트했습니다.
- 프로젝트 패널 > 외부 라이브러리 > lib-name을 마우스 오른쪽 버튼으로 클릭합니다.
- 라이브러리 속성을 클릭 합니다.
- 문서 URL 지정을 클릭하십시오.
- 그리고 URL을 지정하십시오. 내 기계의 경우
file:///opt/android-sdk/extras/google/google_play_services/docs/reference
- 결과는 다음과 같습니다.
- 프로젝트 동기화 후 Google Play 서비스 의 javadoc을 탐색 할 수 있습니다.
노트 :
이것은 Jason이 식별 한 xml에 동일한 JAVADOC 항목을 배치 했지만 gradle과 동기화 한 후 사라지지 않습니다.
것이 가능하다:
- 열다
Project structure
- 원하는 종속성으로 이동
- 스크린 샷에서 버튼을 누르고 폴더 또는 파일 제공
소스를 첨부하는 또 다른 방법 :
- 라이브러리에서 클래스로 이동 (클래스 이름 위로 마우스를 이동하고 CMD + 왼쪽 클릭 또는 CMD + B 수행)
- "소스 첨부 .."편집기의 오른쪽 상단에 클래스의 디 컴파일 된 버전 메뉴가 표시됩니다.
Matyas의 답변에 문제가 있어서 외부 라이브러리 목록 에 내 로컬 .jar 라이브러리가 표시되지 않았습니다 .
해결책은 여기에 언급되어 있습니다 : https://code.google.com/p/android/issues/detail?id=73087#c26
- "Structure"탭을 마우스 오른쪽 버튼으로 클릭하고 "Split Mode"를 선택합니다 (그러면 "Project"및 "Structure"탭을 동시에 열 수 있음).
- "프로젝트"및 "구조"탭을 동시에 엽니 다.
- "프로젝트"탭에서 "Android"퍼스펙티브를 선택한 다음 모듈 폴더 (예 : "앱")를 선택합니다.
- "Structure"창에서 이제 로컬 * .jar를 포함한 모든 라이브러리 목록을 볼 수 있습니다.
Matyas의 답변으로 계속하십시오.
- 원하는 라이브러리를 마우스 오른쪽 버튼으로 클릭하고 "라이브러리 속성 ..."을 선택합니다.
- * .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)
compileSdkVersion 23
buidl.gradle에서 사용하고 에서 SDK 23 문서 파일과 소스 파일을 다운로드 한 경우 Android 스튜디오 SDK manager
에서 Android API 및 Java API 문서 및 소스가 모두 자동으로 표시 되므로 수동으로 설정할 필요가 없습니다.
참고 URL : https://stackoverflow.com/questions/20994336/android-studio-how-to-attach-javadoc
'code' 카테고리의 다른 글
ImportError : Image라는 모듈이 없습니다. (0) | 2020.12.13 |
---|---|
특정 요소에만 CSS 스타일 적용 (0) | 2020.12.12 |
Android gradle 빌드 오류 : (9, 0) Gradle DSL 메서드를 찾을 수 없음 : 'compile ()'. (0) | 2020.12.12 |
각도기에서 browser.ignoreSynchronization은 무엇입니까? (0) | 2020.12.12 |
전자에서 DOM 요소에 액세스하는 방법은 무엇입니까? (0) | 2020.12.12 |