Articles of android gradle

每次Gradle运行时都会编译应用程序,花费大量时间

在使用Eclipse进行开发时,如果我之前已经运行/调试过应用程序并且没有更改其源代码,那么再次运行/调试同一个应用程序的速度相当快。 但是,对于Android Studio和Gralde,每当我尝试运行/调试应用程序时,gradle构建将始终运行,在应用程序启动时添加额外的15~45秒延迟(有时长达70秒)在一台4岁的HP i7笔记本电脑上)。 因此,问题是:有没有办法跳过Android Studio的gradle构建阶段,或者至少减少运行/调试所需的时间? 注意:我已经配置了gradle.properties,如下所示: org.gradle.parallel=true org.gradle.daemon=true org.gradle.configureondemand=true 编辑:我的gradle构建可能比大多数项目更复杂,因为它有7种不同的风格(将扩展到~20)和3种构建types,还包含Groovy代码来更改APK名称(插入当前日期),并自动插入任务根据当前的buildType增加版本代码和版本名称。 这是完整的build.gradle(修改为隐藏客户名称): import java.text.SimpleDateFormat apply plugin: ‘com.android.application’ def appendVersionNameVersionCode(applicationVariants) { applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null) { def PREFIX = “My_APP_” if (outputFile.name.endsWith(‘.apk’) && !outputFile.name.startsWith(PREFIX)) { def names = variant.baseName.split(“-“); def apkName = PREFIX+names[0]+”_”; if(names[1].equals(android.buildTypes.debugEx.name)) […]

Android Gradle Plugin 3.0构建错误

遇到迁移到Android gradle插件3.0的问题 。 项目根目录下的build.gradle文件 buildscript { repositories { jcenter() google() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1’ } } Android 应用程序模块build.gradle buildscript { repositories { maven { url ‘https://maven.fabric.io/public’ } mavenCentral() } dependencies { classpath ‘io.fabric.tools:gradle:1.+’ classpath testDependencies.spoon } } repositories { maven { url ‘https://maven.fabric.io/public’ } } apply plugin: ‘com.android.application’ apply plugin: ‘io.fabric’ spoon { debug […]

在Android工作室中减少Gradle同步时间

我正在使用带有16GB内存的mac,ssd hdd并且每次构建,清理或打开项目时仍然需要15分钟+ Gradle同步,是否有任何Android Studio优化可以减少这个时间。

错误:无法使用哈希字符串’android-21’find目标

我想将我的compileSdkVersion从23更改为21.所以我在build.gradle中进行了以下更改,但是我收到了以下错误。如何解决此问题? 无法使用哈希字符串’android-21’find目标 apply plugin: ‘com.android.application’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.example.shalabh.fly” minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(include: [‘*.jar’], dir: ‘libs’) compile ‘com.android.support:appcompat-v7:23.0.1’ compile files(‘libs/httpclient-4.1-beta1.jar’) }

如何使用Lint Option StopShip使Grade发布版本失败?

我已经阅读了很多关于StopShip Android Lint Check和Gradle支持的内容 http://tools.android.com/tips/lint-checks http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.LintOptions.html#com.android.build.gradle.internal.dsl.LintOptions:checkReleaseBuilds Android lint启用gradle检查 lint任务上的gradle构建失败 http://developer.android.com/tools/help/lint.html http://developer.android.com/tools/debugging/improving-w-lint.html 我想使用SO中的一些已经提到的,而不是TODO或FIXME注释,使用它来确保用于开发/调试/测试的代码块不能达到生产。 为此,我想做两件事: – 启用StopShip检查,因为它默认是禁用 – 将严重性从警告(默认)更改为错误 (假设我们在gradle配置上使用abortOnError true )。 我没能做到这一点! 无论我尝试什么,如果我在我的代码中添加// STOPSHIP注释,android构建都不会失败。 这很奇怪,因为在textEditor中它突出显示为错误,如果我运行Lint检查(Analyze> Inspect Code …),它将被列为问题之一。 这是我在build.gradle尝试过的build.gradle lintOptions { checkReleaseBuilds true // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when […]

Crashlytics – 不同的gradle风味的不同包名

我正在尝试使用具有2种不同风格的Android Studio设置Android应用。 每种风味都会更改packageName和applicationId – 因为我想将2个独立的APK作为2个不同的产品提交给Google Play。 我还尝试在Crashlytics中设置单独的应用程序,每种风格都有一个。 虽然第一个创建没有任何问题,但当我切换味道时,Android Studio的Crashlytics插件仍然认为我的项目已经设置好了。 因此,目前我无法正确设置我的Crashlytics以获得第二种口味。 在此先感谢您的任何建议。

获取错误“需要Gradle版本1.10。 当前版本是1.12。“执行”gradle wrapper“时?

我正在尝试为Android项目执行gradle wrapper ,并引发此错误: 评估根项目’myapp’时出现问题。 > Gradle版本1.10是必需的。 当前版本是1.12。 如果使用gradle包装器,请尝试将/Users/dude/myapp/gradle/wrapper/gradle-wrapper.properties中的distributionUrl编辑为gradle-1.10-all.zip 我在build.gradle wrapper任务如下所示: task wrapper(type: Wrapper) { gradleVersion = “1.12” } 我最近通过Homebrew更新到Gradle v1.12。 是不支持还是什么? 如果是这样,我在哪里可以检查这种事情?

无法使用SDK构建工具21或更高版本过滤多个密度的资产

由于使用gradle插件1.3.0在发布模式下构建我的应用程序时出现问题,我已切换到1.4.0(beta 2),修复了所述构建问题。 但是,虽然某些风格完美构建,但其他风格的构建已中止,并显示以下错误消息: 无法使用SDK构建工具21或更高版本过滤多个密度的资产。 请考虑使用apk拆分。 我没有find任何关于上述句子的参考,我应该如何处理这些口味的资源,甚至为什么这个错误只出现在几种口味而不是所有口味中。 编辑:build.gradle apply plugin: ‘com.android.application’ android { signingConfigs { config { } } compileSdkVersion 23 buildToolsVersion “23.0.1” defaultConfig { applicationId “com.example.appname” minSdkVersion 8 targetSdkVersion 23 versionCode 1 versionName ‘0.0.1’ } buildTypes { release { proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ minifyEnabled true zipAlignEnabled true signingConfig signingConfigs.config } debug { applicationIdSuffix ‘debug’ versionNameSuffix ‘_debug’ […]

Android Studio 3.0金丝雀 – 无法解析:org.apache.httpcomponents:httpclient:4.0.1

我安装了AS 3.0 Canary,导入了一个现有的项目,并且在运行gradle sync时,我遇到了这个错误: Failed to resolve: org.apache.httpcomponents:httpclient:4.0.1 我尝试清理项目,但也失败了。 这是错误的一部分: Required by: project :app > com.google.api-client:google-api-client-android:1.22.0 > com.google.http-client:google-http-client-android:1.22.0 > com.google.http-client:google-http-client:1.22.0 我查看了其他问题,似乎httpclient在API 23中被弃用了。但是这些问题中提出的每个解决方案似乎都不起作用。 更令人困惑的是,它在AS 2.4 Preview 7中运行得非常好, targetSdkVersion和compileSdkVersion都设置为25。 编辑:我尝试在稳定版本的AS上运行它,它似乎工作正常。 但我需要在预览版本上使用较新的模拟器。

如何在gradle项目中添加JAR?

我在Android工作室使用gradle进行Android项目。 我有一个名为TestFlightAppLib.jar的jar。 maven存储库中没有这个jar,所以我不能把它放在我的build.gradle 。 如何将此JAR文件添加到我的项目中? 我没有看到任何向项目添加外部jar的选项。 更新 这是我完整的build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.6.+’ } } apply plugin: ‘android’ repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion “18.1.1” defaultConfig { minSdkVersion 8 targetSdkVersion 18 } } dependencies { compile ‘com.actionbarsherlock:actionbarsherlock:4.4.0@aar’ compile ‘com.android.support:support-v4:18.0.+’ compile ‘com.google.code.gson:gson:2.2.4’ compile ‘com.squareup.retrofit:retrofit:1.2.2’ compile ‘com.github.rtyley:roboguice-sherlock:1.5’ compile ‘org.roboguice:roboguice:2.0’ […]