【问题标题】:Renaming "java" directory to "kotlin" in Android Studio在 Android Studio 中将“java”目录重命名为“kotlin”
【发布时间】:2017-05-18 23:00:18
【问题描述】:

我的 android 项目是 100% 用 Kotlin 编写的,我想将 java 目录重命名为 kotlin 以保持一致。我加了

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

gradle 并重命名目录。所有编译和工作正常。

唯一的问题是,当我在项目选项卡中时,在“Android”视图中,该目录仍命名为“java”(如果我在下拉列表中切换到项目视图,我确实会看到“kotlin”)。

我错过了什么?

【问题讨论】:

    标签: java android kotlin android-gradle-plugin


    【解决方案1】:

    更新(2)

    如果你正在使用

    Android Studio北极狐2020.3.1 Beta 2

    Gradle 插件版本7.0.0-beta02

    你很好,可以把你的代码放在src/main/kotlin。 Android Studio 在文件树中将其显示为kotlin。无需将目录添加到sourceSet,如下所示。


    更新(1)

    Kotlin 终于来到了 AndroidSourceSet。如果你使用最新的Android Gradle Plugin版本7.0 alpha,你可以使用:

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

    这在 Android Studio 3.6.2 中运行良好,并且应该是最通用的解决方案,直到 AndroidSourceSet 开始直接支持 Kotlin。只需在app/build.gradle[.kts] 末尾添加以下 sn-p:

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

    【讨论】:

    • 适用于 Android Studio 4.0 RC1,应该是公认的答案。
    • @kroegerama 在 Android Studio 4.0.1 中不起作用。我已将代码添加到build.gradle.kts(应用程序级别)文件的底部,但是kotlin 文件夹显示为java
    • Android Studio 将其显示为java,但实际文件夹名称可以是kotlin(如果您在文件系统中创建kotlin 文件夹而不是java 文件夹)。 AS 还不能显示 java 以外的内容。
    【解决方案2】:

    Android Studio 3.6 具有相同的行为。 这就是我在 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"
    }
    

    【讨论】:

      【解决方案3】:

      在 Linux 上

      在您的模块 gradle 文件中,例如:app.gradle

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

      【讨论】:

      • 您在哪里添加此代码以查看此更改,因为它不适合我
      • 它也不适合我。 Android Studio 3.2.1
      • 你在用windows吗?我在 linux 上,对我来说它正在工作
      • 这是我在 Mac 上使用的解决方案,它可以工作。也许您需要在 Windows 中使用反斜杠。
      • 它需要在android { } 块内
      【解决方案4】:

      更新:

      在将java 重命名为kotlin 后,语法高亮被破坏,无法 CTRL + B 到源文件中的资源。

      所以我在问题跟踪器中打开了一个issue,甚至提到了重命名后的 android 视图问题。

      所以现在我将保持源目录名称不变。


      其实你只需要将java目录重命名为kotlin,在Project view中右击java目录并选择

      Refactor > Rename
      

      并键入新目录名称为kotlin

      无需在 gradle 文件中添加任何代码

      (适用于 android studio 3.5,Linux Mint)

      Android view 重构之后,如果它是Android app moduleandroid library module,您的源目录(java/kotlin)将不会显示,但在常规library modules 中它将显示为java。在Project view 中,一切看起来都符合预期。

      【讨论】:

      • 这并不完全正确。这是一个不允许访问任何类的测试的解决方案。这意味着,如果你在 Android Studio 上进行重构,一切看起来都很好,你的应用程序运行,但是如果你尝试在一个类中打开一个测试(GoTo->Test),Android Studio 将无法访问测试
      • @FernandoPrieto 我没有看过测试部分,但正如您在我更新的部分中看到的那样,它破坏了 IDE 功能,这就是我打开问题的原因。留下您对测试部分的评论,以便他们也会对此进行调查。
      • 我在这里使用 Refactory->Rename 进行了测试,并且:它不能正常工作。 °测试和AndroidTest执行失败; ° 构建APP OK; OBS:我的模块在 Kotlin 中重命名为 100%。
      【解决方案5】:

      即使android studio 支持它,kotlin 仍然是一个插件,v3.4 具有相同的行为。

      解决办法:

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

      settings.gradlelocal.properties 中为我工作(Windows)

      【讨论】:

        【解决方案6】:

        我认为这个功能是 Android Studio。默认情况下,带有源代码的文件夹标记为“java”。即使你在“src/main”文件夹中包含“kotlin”和“java”。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-28
          • 2015-03-23
          • 2012-12-27
          • 2020-10-03
          • 2018-04-16
          • 1970-01-01
          • 2017-03-08
          • 2014-03-06
          相关资源
          最近更新 更多