4

我需要在我的 gradle 构建文件中构建一些技巧,以便 Android Studio 理解一些事情。当我从命令行目录运行构建时,我不需要这些技巧。有没有办法检测何时从 Android Studio 中运行构建?也许通过环境变量等?

4

3 回答 3

7

使用AndroidStudio 2.1.1,您可以使用idea.platform.prefix属性:

def sysprops = System.getProperties()
if (sysprops['idea.platform.prefix'] != null) {
    // Built from AndroidStudio
} else {
    // Built from command line
}
于 2016-10-04T15:20:37.077 回答
6

gradle -P blah=val从命令行使用并在您的 build.gradle 中使用or project.hasProperty("blah")orproject.getProperty("test")if (blah ... ) 决定是否运行您的 hack。

更新:

好的,我找到了直接的方法:)

def env = System.getProperties()
if (env['com.android.studio.gradle.project.path'] != null) {
    // build from Android Studio, do magic here
}
于 2013-09-17T07:38:02.507 回答
2

Jake Wharton 建议android.injected.invoked.from.ide 在开发时使用反射来加速黄油刀

dependencies {
  if (properties.containsKey('android.injected.invoked.from.ide')) {
    implementation 'com.jakewharton:butterknife-reflect:<version>'
  } else {
    implementation 'com.jakewharton:butterknife:<version>'
    kapt 'com.jakewharton:butterknife-compiler:<version>'
  }
}

来自推特

嘿 ButterKnife 用户:我正在开发基于反射的实现,以便在开发期间使用,因此不需要注释处理器。

跟进:_

这是什么?来自(链接:http://gradle.properties)gradle.properties 的属性

我们想要的答案

不,它是由 IDE 添加的

于 2019-05-21T21:29:31.550 回答