Articles of gradle

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动态切换/更改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插件,所以解决方案也应该像插件一样工作。

无法解析com.android.tools.build.gradle:3.0.1

我强迫gradle使用http我修改了我的gradle-wrapper.properties: distributionUrl=http\://services.gradle.org/distributions/gradle-4.3-all.zip build.gradle: buildscript { repositories { //jcenter() //google() maven { url “http://jcenter.bintray.com”} } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }} allprojects { repositories { jcenter() maven { url ‘http://maven.google.com’ } maven { url “http://jitpack.io” } }} 据我所知,我应该使用3.0.1但是当我检查jitpack或maven上的实际repo时,只有2.3.3可用。 我得到的错误信息是: […]

在Intellij / Android Studio中调试Gradle构建文件

我有时遇到Gradle的模糊问题。 有时,如果我正在阅读源文件或添加println语句以确定我能做什么以及状态是什么,这会有所帮助。 但我真的想放置一个断点并列出variables的内部状态。 可以使用Android Studio或IntelliJ吗? 我也喜欢按住Ctrl键单击DSL关键字,这样我就可以获得一些上下文。 只是放置一个断点并从gradle任务列表中单击“debug”不起作用,它只是在不停止的情况下运行任务。

在Gradle产品口味上调试签名配置

我有一个项目,我有几个特定于设备的产品口味,每个口味需要使用不同的配置签名: productFlavors { nexus7 { signingConfig signingConfigs.nexus7 } nexus4 { signingConfig signingConfigs.nexus4 } } 这在构建“发布”变体时非常有用。 但是,当使用’debug’变体时(例如,当我构建Nexus4Debug时),Gradle使用默认的android调试密钥。 在我的情况下,我高度依赖这些构建以正确的方式签名,如果使用默认调试密钥签名,我的应用程序相对无用。 任何人都知道是否有办法为每个变体指定签名配置? 我知道我可以按照构建types来做,la: buildTypes { debug { signingConfig signingConfigs.nexus4 } } 但这限制了我总是使用相同的签名配置来调试两种风格的版本。 PS – 了解这是一个边缘用例。 这是一个企业项目,我们在许多不同的Nexus设备上测试自定义ROM和系统签名的应用程序。

Android Studio中的Jacoco代码覆盖范围

我一直试图在一段时间内安静地进行Jacoco测试覆盖。 我在这些主题中尝试了几种可能的解决方案: 使用JaCoCo Gradle插件的Android测试代码覆盖率 如何使用Android gradle插件0.10.0或更高版本获取jacoco覆盖率报告? 我使用genymotion在一个emulatated设备中运行测试。 这是我添加到build.gradle的内容: apply plugin: ‘jacoco’ android{ jacoco { version “0.7.1.201405082137” } buildTypes{ debug{ testCoverageEnabled = true } } } jacoco { toolVersion “0.7.1.201405082137” } 为了运行它,我使用类似的东西 ./gradlew clean ./gradlew createFLAVOR_NAMEDebugCoverageReport 相关生成的文件/文件夹是: /build/intermediates/coverage-instrumented-classes /build/intermediates/jacoco /build/outputs/code-coverage/connected/flavors/MyFlavor/coverage.ec 但是,没有@ build / reports / jacoco / test / html / index.html或任何html页面/代码覆盖率报告@ / build / outputs。 […]

android + gradle:每种风格的不同清单元数据

我想根据产品风格定义不同的meta-data清单属性。 我试着这样做, src/ main/ AndroidManifest.xml prod/ AndroidManifest.xml dev/ AndroidManifest.xml main清单是完整的,但prod和dev版本是稀疏的,只包含元数据, 这是我的理解,味道清单将与主要合并。 在我的build.gradle中,我这样做, android { productFlavors { prod { manifest.srcFile “prod/AndroidManifest.xml” } dev { manifest.srcFile “dev/AndroidManifest.xml” } } … } 然而,find我尝试建立“assembleProdDebug”,我明白了, * What went wrong: A problem occurred evaluating project ‘:Inventory’. > No signature of method: org.gradle.api.java.archives.internal.DefaultManifest.srcFile() is applicable for argument types: (java.lang.String) values: [prod/AndroidManifest.xml] 谢谢。

Gradle无法解析项目:linkedin-sdk

我正在使用Androis Studio 3.0 Canary 4.在我的项目中,我有Linkedin-sdk,它的工作原理。 我可以用它。 唯一的问题是,当我搜索构建Gradle时,我会收到此消息。 而且因为我不能构建它我不能使用设计编辑器和预览。 这是我的build.gradle项目: buildscript { repositories { jcenter() maven { url ‘https://maven.google.com’ } } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0-alpha4’ classpath ‘com.google.gms:google-services:3.0.0’ } } allprojects { repositories { jcenter() maven { url ‘https://maven.google.com’ } } } task clean(type: Delete) { delete rootProject.buildDir } Build.Gradle模块:App apply plugin: ‘com.android.application’ android { compileSdkVersion 26 […]

导入Facebook SDK后,库使用与此项目相同的包

这是我在将Facebook SDK(3.15.0)导入Android Studio(0.8.2)后得到的错误消息。 错误:任务’:app:processDebugResources’的执行失败。 错误:库使用与此项目相同的包:com.aaa.bbb.test您可以使用android.enforceUniquePackageName = false暂时禁用此错误但是,这是临时的,将在1.0中强制执行 这是我的build.gradle。 apply plugin: ‘com.android.application’ android { compileSdkVersion 19 buildToolsVersion ‘19.1.0’ defaultConfig { applicationId “com.aaa.bbb.test” minSdkVersion 11 targetSdkVersion 19 versionCode 1 versionName “1.0” } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:19+’ compile project(‘:facebook’) } 这是我的Facebook […]

Android Studio gradle风格未在Build Variants中显示

根据我的理解,Android Studio应该在“Build Variants”面板中显示构建变体和风格的整个矩阵。 我创建了一个空项目,使用以下build.gradle。 buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.6.+’ } } apply plugin: ‘android’ repositories { mavenCentral() } android { compileSdkVersion 17 buildToolsVersion “18.1.0” defaultConfig { minSdkVersion 7 targetSdkVersion 18 } productFlavors { productFlavors { flavor1 { packageName “com.example.flavor1” versionCode 20 } flavor2 { packageName “com.example.flavor2” minSdkVersion 14 } } […]