I\'m using a standard Android Studio directory structure and I created different build types:
buildTypes {
debug {
runProguard false
packageN
First, try re-importing the project. Delete all of your build directories, .iml
files and the .idea
folder. Then import the project.
If that doesn't work then you can try this to "force it". Checkout this response from Bernd Bergler. Note that this is a hack and ideally isn't necessary
Here's a slightly modified version of his code.
task addPreview {
def src = ['src/preview/java']
def file = file("app.iml")
doLast {
try {
def parsedXml = (new XmlParser()).parse(file)
def node = parsedXml.component[1].content[0]
src.each {
def path = 'file://$MODULE_DIR$/' + "${it}"
def set = node.find { it.@url == path }
if (set == null) {
new Node(node, 'sourceFolder', ['url': 'file://$MODULE_DIR$/' + "${it}", 'isTestSource': "false"])
def writer = new StringWriter()
new XmlNodePrinter(new PrintWriter(writer)).print(parsedXml)
file.text = writer.toString()
}
}
} catch (FileNotFoundException e) {
// nop, iml not found
}
}
}
// always do the addPreview on prebuild
gradle.projectsEvaluated {
preBuild.dependsOn(addPreview)
}
Simply drop that in your build.gradle
file outside of the android
section.
Description from this source:
Android Studio automatically generates .iml project files from gradle build files. This task edits the Android Studio project file app.iml and adds the test directory. The changes are lost whenever Android Studio rescans the gradle files, but right after that it runs a build and the task is hooked into that, so it’s all good. This version has a couple of tweaks, such as adding the new task into the normal build cycle a bit differently, and gracefully handling the absence of the .iml file.
This has worked to an extent for me: The IDE recognizes it as a src tree now but doesn't want to link it with any other src trees.