0

我想包含 settings.gradle.kts 文件的不同部分,具体取决于项目是使用 IntelliJ IDEA 还是 Android Studio 编译的。

出于我的目的,我只需要知道项目是否使用 Android Studio 编译,因为项目的某些特定于移动设备的模块只能使用 Android Studio 编译。

由于这些模块在设置 gradle kotlin 脚本文件中是有区别的,我希望找到一个解决方案,其中一个简单的 if 相应地包含这些模块。到目前为止,我在 IDEA 工作时一直在评论相关模块。

4

1 回答 1

1

在 Android Studio/IntelliJ IDEA 中设置了两个相关属性:

  • idea.paths.selector,在默认安装中具有诸如“AndroidStudioPreview2021.1”或“IntelliJIdea2021.2”之类的值,因此如果您需要知道它是否是,您可以使用它:
val pathSelector: String? = System.getProperty("idea.paths.selector")
if(pathSelector == null) // Some other IDE or none
else if(pathSelector.startsWith("AndroidStudio"))
// Do Android Studio specific things
else if(pathSelector.startsWith("IntelliJIdea"))
// Do IntelliJ IDEA specific things
else // Some other Jetbrains IDE
  • idea.platform.prefix,这似乎只为 Android Studio 设置,值为“AndroidStudio”,所以它适用于我的情况:
if(System.getProperty("idea.platform.prefix") == "AndroidStudio")
   // Do Android Studio specific things
else // Any other IDE or none

感谢@Konstantin Annikov通知我另一个类似的问题,该问题从未完全回答但在正确的轨道上(使用属性)

于 2021-08-31T11:19:34.067 回答