Articles of gradle

在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 } } […]

使用gradle(Android Studio)和本地maven repo时无法构建应用程序

我想在我的应用程序中包含库Slik和Cards-UI ,我正在使用android studio和gradle来构建。 没有这个应用程序构建正常,但添加依赖项使构建失败。 查看构建的调试日志,它似乎没有在arr文件的本地repo中查找。 我可以看到文件在那里,我已经按照github wiki页面上的教程进行安装,并且工作正常。 错误是: A problem occurred configuring project ‘:climbtrack’. > Could not resolve all dependencies for configuration ‘:climbtrack:_debugCompile’. > Could not find com.afollestad.cardsui:library:1.0-SNAPSHOT. Required by: ClimbTrack:climbtrack:unspecified > Could not find com.afollestad.silk:library:1.0-SNAPSHOT. Required by: ClimbTrack:climbtrack:unspecified 这是我的build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.7.+’ } } apply plugin: ‘android’ […]

为每个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 = […]

Gradle dagger lint:忽略包裹

我使用Gradle创建了一个Android项目。 我添加了一个匕首库 dependencies { compile ‘com.squareup.dagger:dagger-compiler:1.2.1’ compile ‘com.squareup.dagger:dagger:1.2.1’ } 在尝试编译项目后,由于lintexception导致构建失败: InvalidPackage:Android中未包含的包 ../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar:库中的包引用无效; 不包含在Android中:javax.annotation.processing。 引自dagger.internal.codegen.GraphAnalysisErrorHandler。 ../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar:库中的包引用无效; 不包含在Android中:javax.lang.model.type。 引用自dagger.internal.codegen.GeneratorKeys。 ../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup.dagger/dagger-compiler/1.2.1/c8bf6c2fda9b27f4d44a2aa4280df525a1408771/dagger-compiler -1.2.1.jar:库中的包引用无效; 不包含在Android中:javax.lang.model.util。 引自dagger.internal.codegen.GraphAnalysisErrorHandler。 ../../../../../../.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.3.0/4b290e394ea3109be5c0b7f08ff75de089125122/javawriter-2.3.0.jar :库中的包引用无效; 不包含在Android中:javax.lang.model.element。 引自com.squareup.javawriter.JavaWriter。 所以,我必须修复或使lint忽略匕首包。 我已经设置了lint.xml但我无法想出一种忽略的方法: 谢谢。