Tag: gradle

跟踪Gradle脚本中每个任务的执行时间?

追踪Gradle构build脚本中的任务执行时间的最优雅方式是什么? 在最佳情况下,将时间直接logging到任务名称的相同或下一行 :buildSrc:testClasses (0.518 secs) :fooBar (28.652 secs)

Gradle错误:任务执行失败':app:processDebugGoogleServices'

我正在关注这个链接,在我的android应用程序中集成G​​ooglelogin。 https://developers.google.com/identity/sign-in/android/start-integrating正如上面给出的页面给出的,我们必须包含依赖 compile 'com.google.android.gms:play-services-auth:8.3.0' 在应用程序级build.gradle文件,但这样做和build设项目的错误来说 Error:Execution failed for task ':app:processDebugGoogleServices'. > Please fix the version conflict. 的build.gradle(模块:APP) apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.brainbreaker.socialbuttons" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies […]

通过Eclipse错误运行Gradle项目“system can not find System Java Compiler”

当我通过Eclipse运行Gradle项目时,出现以下错误。 系统找不到系统Java编译器。 确保你已经安装了一个JDK(不仅仅是一个JRE),并且把你的JAVA_HOME系统variablesconfiguration为指向根目录。 无法使用Gradle安装“C:\ gradle-1.2-all \ gradle-1.2”来执行构build。 但是我已经安装了JDK 1.7并设置了JAVA_HOME环境variables。

为什么Gradle需要一个settings.gradle文件?

我要将我的Android项目从Ant转换为Gradle。 我的Eclipse工作区非常简单: Workspace MyApp MyApp-AndroidLibrary 当我在MyApp中添加build.gradle文件时,我想引用我的Android库项目: apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':MyApp-AndroidLibrary') } 当我运行gradle构build时,出现了一个错误“Project with path”:MyApp-AndroidLibrary'在根项目中找不到',我为此search了一下,发现我需要在我的工作区中设置一个“settings.gradle”文件目录,添加 include ":MyApp" include ":MyApp-AndroidLibrary" 这看起来对我来说太糟糕了,为什么Gradle需要一个settings.gradle文件 ,为什么不提取我在依赖关系中定义的项目呢? 什么include真正的手段? 如果我在工作区中安装了附加应用程序和其他共享库,结构可能如下所示: Workspace App1 App2 Library1(Used by App1 & App2) Library2(Used only by App1) Library3(Used only by App2) 因为只有一个settings.gradle文件,我不得不将它们全部添加到settings.gradle中。 那味道不好。 是的,我可以重新组织结构,使Library2成为App1的子目录,而Library3成为App2的子目录,但是Library1呢? 对此有何评论?

在Android上使用不同的密钥进行Gradle签名

我有我的Android应用程序的许多口味, 我想除了一个都使用相同的密钥 。 有一个需要使用不同的密钥。 我如何重写signingConfig适用于应用程序的味道(但在相同的构buildtypes,如“释放”)的signingConfig ? 我希望所有版本默认使用主版本configuration。 我只想覆盖1味 我希望能够用一个gradlew assembleRelease命令来运行所有的发行版本 最后一点非常重要,因为我现在有超过120种不同的口味,而且越来越多。 为了定制每一个单独的风味是很多额外的工作。 相关的post我试过了: 使用单一构buildtypes的不同键生成多个构build 这需要对每种风味进行configuration 它似乎并不使用我的自定义signingConfig无论如何 用gradle签署产品口味 接受的解决scheme不起作用(对我来说) 根据评论,这是可能的通过将buildTypes内的productFlavors但我不明白如何做到这一点。 在Gradle Product Flavors上debugging签名configuration 正如在博客文章中解释的那样: 使用Gradle构buildAndroid应用程序的多个版本 它实际上不起作用,它完美的作品 但对于119种口味来说,这并不好 总的来说,每个解决scheme似乎仍然使用默认的发布configuration,而不是我的自定义configuration。 我的build.gradle重要部分是这样的: signingConfigs { releaseConfig { storeFile file('key') storePassword "pass" keyAlias "alias" keyPassword "pass" } custom { storeFile file('custom_key') storePassword "pass" keyAlias "alias" keyPassword "pass" } } productFlavors { […]

Android Studio lint报告“无法推断参数types”。

我已经执行了以下命令,查看了Android Studio提供的项目的检查报告: Analyze->Inspect Code… 该报告指出我的gradle.build文件中的代码片段存在问题: buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.release } } 具体的问题是cannot infer argument types (at line 34) 。 为了清楚起见,我包含了一个快照。 一个SO 回答似乎表明这只是一个虚假的警告。 如果是这样的话,我可以安全地禁止这个警告吗?

用IntelliJdebuggingGradle插件

问题 我想用IntelliJ使用交互式debugging器。 不幸的是,我无法说服IntelliJ加载和编译插件。 但是,我可以执行gradle clean build ,插件按预期构build并运行testing。 具体来说,我试图debugginggradle-js-plugin的本地更改,IntelliJ说它无法findcom.google.javascript.jscomp.CompilerOptions以及spock.lang.Specification 。 (我想也许这是关于他们的方式加载,但这是一个猜测。) 我试过的东西 注:我没有恢复步骤之间的任何进程。 我的第一个猜测 我注意到docs.codehaus.org上的一个howto 。 IntelliJ无法findorg.gradle.launcher.GradleMain ,所以我已经调整它使用GradleLauncher与以下内容: import org.gradle.GradleLauncher class GradleScriptRunner { public static void main(String[] args) { GradleLauncher.newInstance( "-p", "/path/to/gradle-js-plugin/src/test/resources/build.gradle", "clean assemble" ) } } 每个GradleLauncher的文档 。 结果: IntelliJ不会编译这个项目。 1. Peter Peter Niederwieser的答案通过插件修复想法项目和debugging 脚步 ~# cd /path/to/gradle-js-plugin && gradle cleanIdea idea 打开新创build的项目,并尝试使用步骤0中的ScriptRunner进行debugging。 结果:项目编译( 耶! […]

用gradle签署产品口味

我打算将我的项目迁移到Gradle。 我的一个项目有多种产品风格,每个项目都必须在其发布版本中使用不同的签名configuration签名。 所以这是我迄今为止所尝试的: buildscript { … } apply plugin: 'android' android { compileSdkVersion 17 buildToolsVersion '17' signingConfigs { flavor1 { storeFile file("keystore") storePassword "secret" keyAlias "aliasForFlavor1" keyPassword "secretFlavor1" } flavor2 { storeFile file("keystore") storePassword "secret" keyAlias "aliasForFlavor2" keyPassword "secretFlavor2" } } productFlavors { flavor1 { signingConfig signingConfigs.flavor1 } flavor1 { signingConfig signingConfigs.flavor2 } } } […]

Gradle不在发布的pom.xml中包含依赖项

我有一个Gradle项目我正在使用maven-publisher插件来安装我的android库到maven本地和一个maven回购。 这工作,但生成的pom.xml不包括任何依赖信息。 有没有解决方法来包含这些信息,还是我不得不回到maven插件并进行所有需要的手动configuration? 研究我意识到,我没有告诉出版物的依赖关系是什么,我只是指定的输出/神器,所以我需要一种方法来连接这个MavenPublication的依赖,但我还没有find如何做到这一点文件。 ————————————————– ———- Gradle 1.10 ————————————————– ———- 生成时间:2013-12-17 09:28:15 UTC 内部版本号:无 修订:36ced393628875ff15575fa03d16c1349ffe8bb6 Groovy:1.8.6 Ant:2013年7月8日编译的Apache Ant(TM)1.9.2版 常春藤:2.2.0 JVM:1.7.0_60(Oracle Corporation 24.60-b09) 操作系统:Mac OS X 10.9.2 x86_64 相关的build.gradle部分 //… apply plugin: 'android-library' apply plugin: 'robolectric' apply plugin: 'maven-publish' //… repositories { mavenLocal() maven { name "myNexus" url myNexusUrl } mavenCentral() } //… android.libraryVariants publishing { […]

编译,提供,APK – Android依赖范围

在向Android项目添加新的依赖关系的时候,特别是在Dependencies中的Android Studio中,有三个范围选项:Compile / Provided / APK。 什么是select每一个的影响,我们应该什么时候使用它们? 除了名字所说的。 编辑: “正确处理'提供'和'包'范围做他们应该做的事情'提供'和'包'不能用于Android库,并会产生一个错误”..这是从http://工具。 android.com/tech-docs/new-build-system