C'est peut-être une question très triviale, mais je n'ai trouvé aucune option pour associer javadoc/source avec des dépendances de jar locales (dans le dossier libs) dans le projet Android. Je ne peux pas croire que j'ai passé une heure sur des choses aussi simples :(
Le résultat de la recherche Google indique simplement l'ajout de documentation Android ou de javadoc dans Eclipse. Ce n'est pas ce que je cherche!
J'ai trouvé une solution tout à l'heure car je ne peux pas trouver d'autre solution pendant longtemps.
supposer:
sous le dossier .idea/libraries, vous pouvez trouver libxxx.xml. remplacer JAVADOC par
<JAVADOC>
<root url="jar://C:/yourpath/doc.Zip!/" />
</JAVADOC>
puis ctrl + alt + y pour synchroniser le projet. (Ne faites pas "Synchroniser le projet avec les fichiers Gradle", cela supprimera les modifications)
J'ai trouvé et testé une manière d'ajouter des javadocs sans les perdre après une synchronisation graduelle.
file:///opt/Android-sdk/extras/google/google_play_services/docs/reference
Cela a placé la même entrée JAVADOC dans le xml identifié par Jason mais ne disparaît pas après une synchronisation avec gradle
C'est possible:
Project structure
Une autre façon d’attacher des sources:
J'ai eu un problème avec la réponse de Matyas que je ne voyais pas ma bibliothèque locale .jar dans la liste {Bibliothèques externes}, car elle ne montrait que les bibliothèques attachées par maven.
La solution est mentionnée ici: https://code.google.com/p/Android/issues/detail?id=73087#c26
Continuer comme dans la réponse de Matyas:
Il me semble que le problème est toujours d'actualité:
J'ai aussi perdu beaucoup de temps là-dessus ...
Voici une tâche de dégradé qui recherche la source et la javadoc par convention de nommage/emplacement et les enregistre dans les fichiers .idea en synchronisation. Il appartient à la section allProjects du fichier de graduation racine. Tel quel, il s'attend à trouver [nom du projet] /libs/lib.jar à côté de lib-sources.jar et/ou lib-javadoc.jar . De plus, comme indiqué dans les commentaires, si vos javadocs ne sont pas reliés à "/" dans le fichier jar, vous devrez peut-être modifier le script pour ajouter "docs/html" (par exemple) à la fin de "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"
}
}
}
}
}
}
}
De plus, si vous utilisez jcenter ou mavencentral, les javadocs et les sources doivent fonctionner pour les fichiers jar téléchargés sans utiliser cette tâche, mais vous devrez peut-être ajouter cela dans chaque fichier de dégradé non racine:
apply plugin: 'idea'
idea{
module {
downloadJavadoc = true
downloadSources = true
}
}
Après une enquête, je suis tombé sur ceci:
https://github.com/xujiaao/AARLinkSources
Fonctionne comme par magie!
Personnellement testé avec succès!
1. Structure du projet (ctrl + alt + shift + s)
Emplacement 2.SDK
Emplacement 3.JDK
4.UnCheck "Utiliser le JDK intégré (recommandé)"
5.Sélectionnez votre propre chemin jdk (Mon chemin: C:\Program Files\Java\jdk1.8.0_111)
6.Synchronisé (ctrl + alt + y)
Il y a une solution, Cette procédure a lieu par le terminal,
J'ai testé la solution dans MAC OS .
1) Déplacez vers votre dossier de projet
2) ls -al
(pour afficher les fichiers cachés)
3) Déplacer vers le dossier .idea
, commande: cd .idea
4) Déplacer vers le dossier libraries
, commande: cd libraries /
5) Vous pouvez maintenant voir la liste de tous les fichiers XML pour vos bibliothèques ou vos fichiers JAR. Modifiez-le comme, vi open androidasync_2_1_7.xml
6) Dans l’éditeur, Pour insérer
Press i
Maintenant, vous voyez la balise <SOURCES />
, nous devons fournir un chemin ici comme,
<SOURCES>
<root url="file://$PROJECT_DIR$/androidasync/src/main/Java" />
</SOURCES>
Pour sortir
Press Esc
:wq //for exiting and saving
:q! //for exiting without saving
7) Redémarrez le studio Android (il était parfois nécessaire de synchroniser le dégradé).