【问题标题】:Use modified gradlew when building from Android Studio从 Android Studio 构建时使用修改后的 gradlew
【发布时间】:2018-08-29 05:04:24
【问题描述】:

我有一个 Android 应用程序,我正在尝试从命令行和 Android Studio 中构建它。作为自定义的一部分,我修改了 Studio 自动创建的 gradlew 文件中的 DEFAULT_JVM_OPTS。 (具体我加-Djavax.net.ssl.trustStore

但是,我认为在 Studio 中运行时(例如,单击“运行”按钮)不会拾取它们。如何在 Studio 中进行相同的修改?如果我可以在一个地方进行此更改并让命令行构建和 Studio 构建都可以使用它,我会特别喜欢它。

编辑:我找到了一个解决方案(见下文),但它可能并非适用于所有情况。如果有办法让 Android Studio 获取在 gradlew 中所做的更改,我会很高兴

【问题讨论】:

  • 使用~/.gradle/gradle.properties 文件指定javax.net.ssl.trustStore 时也会出现同样的问题。 Android Studio 只是忽略它。奇怪的是,如果您在 Android Studio 设置中指定代理设置,它会很乐意将其代理设置存储在该文件中。
  • 有趣。我最终不得不在运行时设置系统属性(请参阅我的答案),到目前为止效果很好

标签: android-studio gradlew


【解决方案1】:

我已经能够通过在build.gradle 中设置系统属性来解决这个问题,就像在https://stackoverflow.com/a/43486698/1139908 中一样:

System.setProperty('javax.net.ssl.trustStore', '.keystore') System.setProperty('javax.net.ssl.trustStorePassword', 'changeit')

【讨论】:

  • 谢谢!这让我对如何“全局”修复它有了一个想法,因为我不希望 javax.net.ssl.trustStore 特定于一个回购。我创建了一个truststore.gradle 文件并将其放在~/.gradle/init.d/ 下,并在该文件中添加了System.setProperty("javax.net.ssl.trustStore", "path to my truststore")。像命令行的魅力一样工作,所以希望它也适用于 AndroidStudio。
  • 我可以确认这个技巧也适用于 Android Studio :)
猜你喜欢
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多