Dans Eclipse, je peux ajouter un dossier source à mon projet Android en tant que "dossier source lié"). Comment puis-je obtenir la même chose dans Android Studio?
Ou est-il possible d'ajouter un dossier externe pour construire gradle?
dans votre build.gradle, ajoutez ce qui suit à la fin du nœud Android
Android {
....
....
sourceSets {
main.Java.srcDirs += 'src/main/<YOUR DIRECTORY>'
}
}
La bonne réponse est:
Android {
....
....
sourceSets {
main.Java.srcDirs += 'src/main/<YOUR DIRECTORY>'
}
}
De plus, si votre répertoire source externe n’est pas sous src/main
, vous pouvez utiliser un chemin relatif comme ceci:
sourceSets {
main.Java.srcDirs += 'src/main/../../../<YOUR DIRECTORY>'
}
Juste au cas où quelqu'un serait intéressé, voici un Java qui génère et référence correctement les artefacts construits dans une Android multi-modules
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "net.ltgt.gradle:gradle-apt-plugin:0.15"
}
}
apply plugin: "net.ltgt.apt"
apply plugin: "Java-library"
apply plugin: "idea"
idea {
module {
sourceDirs += file("$buildDir/generated/source/apt/main")
testSourceDirs += file("$buildDir/generated/source/apt/test")
}
}
dependencies {
// Dagger 2 and Compiler
compile "com.google.dagger:dagger:2.15"
apt "com.google.dagger:dagger-compiler:2.15"
compile "com.google.guava:guava:24.1-jre"
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
Bien que sourceSets
vous permette d'inclure des structures de répertoires entières, il n'y a aucun moyen d'en exclure des parties dans Android Studio (à partir de la version 1.2), comme décrit ici: Android Studio Exclude Class from build?
Jusqu'à ce que Android Studio soit mis à jour pour prendre en charge les directives d'inclusion/exclusion pour les Android, Liens symboliques fonctionnent assez bien. Si vous utilisez Windows, des outils natifs tels que junction
ou mklink
peuvent accomplir l'équivalent des liens symboliques Un * x. CygWin peut aussi les créer avec un peu de réversion. Voir: - Git Symlinks dans Windows et Comment faire un lien symbolique avec cygwin dans Windows 7
Vous pouvez ajouter un dossier source au script de construction, puis synchroniser. Recherchez sourceSets dans la documentation ici: http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Basic-Project
Je n'ai pas trouvé de moyen d'ajouter des dossiers de source de test. J'ai ajouté manuellement la source au fichier .iml. Bien sûr, cela signifie qu’il va disparaître à chaque fois que le script de construction est synchronisé.
Si vous n'utilisez pas Gradle (création d'un projet à partir d'un APK, par exemple), vous pouvez le faire via Android Interface utilisateur Studio (à partir de la version 3.3.2):
Open Module Settings
+ Add Content Root
(Centre à droite)OK
D'après mon expérience (avec du code natif), tant que vos .so
Sont construits avec des symboles de débogage et à partir des mêmes chemins absolus, les points d'arrêt ajoutés dans les fichiers source seront automatiquement reconnus.