Renaming "java" directory to "kotlin" in Android Studio

My android project is written 100% in Kotlin and I wanted to rename the java directory to kotlin to be consistent. I added

sourceSets{
    main.java.srcDirs += 'src/main/kotlin'
}

to gradle and renamed the directory. All compiles and works fine.

The only issue is that when I am in the project tab, in "Android" view the directory is still named "java" (if I switch to the project view in the dropdown, I do see "kotlin" tho).

What am I missing?


Solution 1:

Update (2)

If you are using

Android Studio Arctic Fox version 2020.3.1 Beta 2

and

Gradle Plugin version 7.0.0-beta02

you are good to go and can just put put your code in src/main/kotlin. Android Studio shows it as kotlin in the file tree. No need for adding the directory to the sourceSet as shown below.

Android Studio Arctic Fox file tree


Update (1)

Kotlin is finally coming to AndroidSourceSet. If you use the latest Android Gradle Plugin version 7.0 alpha, you can use:

android.sourceSets.all {
    kotlin.srcDir("src/$name/kotlin")
}

This works fine in Android Studio 3.6.2 and should be the most versatile solution until AndroidSourceSet starts supporting Kotlin directly. Just add the following snippet at the end of your app/build.gradle[.kts]:

android.sourceSets.all {
    java.srcDir("src/$name/kotlin")
}

Solution 2:

Android Studio 3.6 has the same behavior. This is how I fixed it, in app/build.gradle:

// Register kotlin files
android.sourceSets {
     androidTest.java.srcDirs += "src/androidTest/kotlin"
     debug.java.srcDirs += "src/debug/kotlin"
     main.java.srcDirs += "src/main/kotlin"
     test.java.srcDirs += "src/test/kotlin"
}

Solution 3:

I think this feature Android Studio. By default, the folder with the source code it is marked as "java". Even if you are in the "src/main" folder contains "kotlin" and "java".