Reputation: 3785
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?
Upvotes: 75
Views: 23060
Reputation: 1117
Simpler Solution Go into Windows Explorer find your src directory Inside you will find
androidTest/java
main/java
test/java
Rename those java directories to
androidTest/kotlin
main/kotlin
test/kotlin
Testing
Optionally remove the .idea directory
Re-load project from disk
Sync project with Gradle files
Rebuild Project and run Project
Upvotes: 0
Reputation: 889
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.
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")
}
Upvotes: 25
Reputation: 1595
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"
}
Upvotes: 7
Reputation: 372
On Linux
In your modules gradle file ex: app.gradle
sourceSets{
main.java.srcDirs += 'src/main/kotlin/'
}
Upvotes: 6
Reputation: 13667
Update:
After refactor renaming java
to kotlin
, syntax highlighting got broken, cannot CTRL + B to resources in source files.
So I opened an issue in the issue tracker even mentioned the android view issue after renaming.
So for now I will keep the source directory name as it is.
Actually you just have to rename the java
directory to kotlin
, by right clicking on the java
directory in Project view
and select
Refactor > Rename
and type the new directory name as kotlin
No need to add any code to gradle file.
(Works on android studio 3.5, Linux Mint)
After refactoring on Android view
, If it is a Android app module
or android library module
your source directories (java/kotlin) would not show up, but in regular library module
s it will show up as java
. In Project view
all things look as expected.
Upvotes: 2
Reputation: 39
even if it is supported in android studio
, kotlin
is still a plugin and v3.4 has the same behavior.
the solution:
sourceSets{ main.java.srcDirs += 'src\\main\\kotlin\\' }
in settings.gradle
or local.properties
works for me (windows)
Upvotes: 1
Reputation: 57
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".
Upvotes: 4