是否有办法在编程上区分IntelliJ IDEA和Android Studio ?



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

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

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

在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,这似乎只是为AndroidStudio设置的,值为"AndroidStudio",所以它适用于我的情况:
if(System.getProperty("idea.platform.prefix") == "AndroidStudio")
// Do Android Studio specific things
else // Any other IDE or none

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

最新更新