Articles of android gradle

添加新库后,Android studio构建速度变慢了吗?

我的应用程序使用旧架构组件。 我想转向新的Android架构组件 。 为此,我在开始时添加了与房间相关的依赖项,之后构建正常。 但是,当我尝试为Lyfecycles,LiveData和ViewModel添加依赖项时,如此处所述。 应用程序构建过程大大减慢,构建apk需要5分钟和更长的时间。 在app的build.gradle中添加了以下dependecies: compile “android.arch.lifecycle:runtime:1.0.0-alpha5” compile “android.arch.lifecycle:extensions:1.0.0-alpha5” annotationProcessor “android.arch.lifecycle:compiler:1.0.0-alpha5” 此外,我必须启用插孔以实现Java 8兼容性,如下所示: defaultConfig { …….. jackOptions { enabled true } } 添加所有这些组件后,构建过程已大大减慢。 我尝试通过“ Help -> Edit custom VM options为某些参数进行一些自定义VM选项更改 -Xmx5120m 我把它设置为几乎5 GB,但没有任何对我有用。 我相信我的机器有足够的硬件。 (8 GB RAM,Windows 10,1TB HDD,AMD A8) 我的应用程序使用了许多谷歌服务,如Gmail API,Firebase API,其他一些库我用尽了64K参考限制? 但是我已经启用了这里提到的多索引。 是否因为新的架构组件或其他原因而发生了这种情况? 如何使构建过程更快? 更新: 下面的答案之一Budius提出了一个脚本,它将显示每个构建过程所采用的时间,我在我的应用程序中执行它的结果是: BUILD SUCCESSFUL Total time: 18 […]

在使用gradle编译android库时如何禁止警告?

在我的应用程序中,我有一个由第三方开发的库,不幸的是它包含了很多lint和javac警告。 我想忽略这两种types的警告,因为它们无法由我们的团队修复,并且它们正在污染我们的构建日志。 我已经尝试将以下内容添加到库build.gradle文件中: 在android块中 lintOptions { ignoreWarnings = true } 我还在build.gradle文件的末尾添加了以下内容: afterEvaluate { tasks.withType(JavaCompile) { it.options.compilerArgs << "-Xlint:none" << "-nowarn" } } 不幸的是,每当“:compileDebugJavaWithJavac”运行时,它仍会输出此项目的警告。 我究竟做错了什么? 编辑这是完整的build.gradle文件 apply plugin: ‘com.android.library’ dependencies { compile fileTree(dir: ‘libs’, include: ‘*.jar’) } android { compileSdkVersion 21 buildToolsVersion “23.0.2” lintOptions { abortOnError false // true by default checkAllWarnings false checkReleaseBuilds false ignoreWarnings […]

Android Studio不支持的Gradle插件版本

与此处提出的问题类似: Android Studio不支持gradle版本,但我使用的是兼容版本 ,但答案并没有解决我的问题。 我正在使用在Ubuntu 14.04 LTS下运行的Android Studio Beta 0.8.1。 我正在尝试导入一个与我的团队共享的项目,但是当我克隆项目并尝试构建它时,我收到此错误: Error:The project is using an unsupported version of the Android Gradle plug-in (0.11.2) Fix plug-in version and re-import project 当我点击链接时,我收到此错误: 12:21:30 PM Quick Fix Failed Unable to find any references to the Android Gradle plug-in in build.gradle files. Please click the link to perform […]

Gradle 2.3.0-alpha1无法使用数据绑定

今天更新到Android Studo 2.3 Canary后我遇到了问题。 构建完成没有错误,但是当我运行应用程序时,gradle控制台一直显示: 找不到android.databinding.annotationprocessor.ProcessDataBinding 这是我的build.gradle // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle 2.3.0-alpha1’ classpath ‘com.google.gms:google-services:3.0.0’ classpath ‘com.android.databinding:dataBinder:1.0-rc1’ classpath ‘me.tatarka:gradle-retrolambda:3.3.1’ classpath ‘me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2’ classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’ // NOTE: Do not place your application dependencies here; they belong // […]

如何使用gradle动态切换/更改testInstrumentationRunner

我的项目有两组不同的测试。 一个组仅使用默认的AndroidJUnitRunner运行,另一个组必须使用自定义实现运行TestRunner extends MonitoringInstrumentation 。 目前,每次我需要运行另一组测试时,我testInstrumentationRunner通过编辑testInstrumentationRunner来切换testInstrumentationRunner : android{ defaultConfig { //testInstrumentationRunner “my.custom.TestRunner” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } } 我知道口味可以有自己的testInstrumentationRunner但我当前的应用程序已经有2个flavourDimensions 。 使用flavor实际上是为了拥有不同版本的app。 我需要2个版本的测试应用程序,它们都使用不同的testInstrumentationRunner测试相同的应用程序。 我尝试通过迭代所有测试变体来更改testInstrumentationRunner 。 实际上有多个testInstrumentationRunner属性: android.testVariants.all { TestVariant variant -> //readonly variant.variantData.variantConfiguration.instrumentationRunner variant.variantData.variantConfiguration.defaultConfig.testInstrumentationRunner } 但是一旦调用了android.testVariants ,就会配置构建并且所有更改都不会反映在构建中。 如何动态更改testInstrumentationRunner(从gradle插件)? 我更喜欢有两个不同的gradle任务,每个任务使用不同的testInstrumentationRunner但测试相同的变体。 因为我打算创建一个gradle插件,所以解决方案也应该像插件一样工作。

proguard-android.txt和proguard-rules.pro有什么区别? – Android

在我的buildType我看到了这个: buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } 我有一些疑问: 为什么有两个文件? 它们之间有什么区别? 我应该在哪里写我的规则?

Android – 使用Dex进行调试的类转换

我的项目工作正常,直到我添加了Facebook依赖项。 我开始收到此错误。 我读了很多问题,问题似乎与MultiDex有关。 但这些解决方案都不适合我 Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/usr/lib/jvm/java-7-openjdk-amd64/bin/java” finished with non-zero exit value 1 即使在我删除了我添加的内容之后,它仍然显示并且gradle似乎在构建时比平常花费了大量时间 这是我的build.gradle apply plugin: ‘com.android.application’ android { compileSdkVersion 23 buildToolsVersion “23.0.3” defaultConfig { applicationId “net.ciblo.spectrodraft” minSdkVersion 15 targetSdkVersion 23 versionCode 1 multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ […]

如何修复eror app \ build \ intermediates \ res \ merged \ debug \ values-v24 \ values-v24.xml

我在构建项目时遇到错误。 错误: Error:Execution failed for task ‘:app:processDebugResources’. > com.android.ide.common.process.ProcessException: Failed to execute aapt C:\Users\MR Maleki\Desktop\WhoIsBetter2\app\build\intermediates\res\merged\debug\values-v24\values-v24.xml Error:(4) Error retrieving parent for item: No resource found that matches the given name ‘android:TextAppearance.Material.Widget.Button.Colored’. Error:(3) Error retrieving parent for item: No resource found that matches the given name ‘android:TextAppearance.Material.Widget.Button.Borderless.Colored’. Error:(3) Error retrieving parent for item: No resource found that […]

为每个Build Variant使用不同的manifestPlaceholder

我首先要说的是我对Gradle很新,所以如果已经回答,我会道歉。 我正在开发一个使用API​​密钥访问第三方工具的Android应用程序。 根据应用程序的风格和构建types ,需要使用不同的API密钥。 这是我正在尝试做的基本概述: android { defaultConfig { manifestPlaceholders = [ apiKey:”DEBUG_KEY” ] } buildTypes{ debug{ // Some debug setup } release{ // Some release setup } } productFlavors { // List of flavor options } productFlavors.all{ flavor-> if (flavor.name.equals(“someFlavor”)) { if (buildType.equals(“release”)) { manifestPlaceholders = [ apiKey:”RELEASE_KEY_1″ ] } else { manifestPlaceholders = […]

更改ndk-build输出位置

我的应用程序具有以下结构 Android | |-> app | | | |-> build [1] | |-> src | | |-> main | | | |-> assets | | | |-> java | | | |-> jni | | | | |-> Android.mk | | | | |-> Application.mk | | | | | | | |-> jniLibs | […]