Articles of gradle

configurationgradle使用JUnit,Mockito,Hamcrest和Espresso

我有一个Android项目,使用Mockito,Hamcrest和Espresso来帮助testing。 无论我尝试使用Gradle构build文件,当我尝试在执行gradle androidTestCompile之后运行我的testing时,我得到了org.hamcrest.Matcher.anyOf的NoSuchMethodError 。 这是我目前的configuration: dependencies { compile project(':GameCore') androidTestCompile files( 'libs/espresso-1.1.jar', 'libs/testrunner-1.1.jar', 'libs/testrunner-runtime-1.1.jar' ) androidTestCompile( 'junit:junit:4.11', 'org.mockito:mockito-core:1.10.0', 'com.google.guava:guava:14.0.1', 'com.squareup.dagger:dagger:1.1.0', 'com.google.dexmaker:dexmaker:1.0', 'com.google.dexmaker:dexmaker-mockito:1.0', 'org.hamcrest:hamcrest-core:1.3', 'org.hamcrest:hamcrest-library:1.3' ) 我试过重写Mockito和JUnit的要求,像这样排除Hamcrest: androidTestCompile('junit:junit:4.11') { exclude group: 'org.hamcrest' } 但这并没有什么区别。 GameCore项目是一个纯Java项目。 它也依赖于JUnit和Mockito,但是当它们被指定为testCompile ,我不认为它们应该是干涉的。 “ gradle dependencies ”这个模块的gradle dependencies的输出是: +— junit:junit:4.11 | \— org.hamcrest:hamcrest-core:1.3 +— org.mockito:mockito-core:1.10.0 | +— org.hamcrest:hamcrest-core:1.1 -> 1.3 | \— […]

使用Android gradle 1.1.1的Android AssertJ 1.0.0

这是我的build.gradle有冲突的一部分: … dependencies { classpath 'com.android.tools.build:gradle:1.1.1' } … testCompile( 'com.squareup.assertj:assertj-android:1.0.0' ) … 我在日志中看到的问题: WARNING: Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (21.0.3) and test app (20.0.0) differ. 显然,它从类path中消除了冲突的依赖。 我不确定它是gradle还是android gradle插件。 我已经尝试了下一个: testCompile( 'com.squareup.assertj:assertj-android:1.0.0' ) { exclude group: 'com.android.support', module: 'support-annotations' } 但我仍然有编译错误,所以依赖项被排除在外。 我已经尝试了下一个: configurations.all { resolutionStrategy { // fail eagerly on version conflict (includes […]

无法获取未知的属性'processReleaseGoogleServices'

我更新了使用Android Studio 2.2和Gradle 2.2.0。 现在我有一个问题的build设。 我按照这个posthttps://medium.com/google-cloud/automatic-per-variant-google-services-json-configurations-with-gradle-d3d3e40abc0e#.g1p7c1tx2configuration了两个“google-services.json”文件用于dev和prod的构build,并在我的app / build.gradle文件中使用以下方法在复制两个“google-services.json”文件之间切换。 afterEvaluate { processDebugGoogleServices.dependsOn switchToDebug processReleaseGoogleServices.dependsOn switchToRelease } task switchToDebug(type: Copy) { description = 'Switches to DEBUG google-services.json' from "src/gcm-dev" include "google-services.json" into "." } task switchToRelease(type: Copy) { description = 'Switches to RELEASE google-services.json' from "src/gcm-prod" include "google-services.json" into "." } Gradle很好,但是当我点击Android Studio中的“Run app”(三angular形“play”图标)或者“Debug app”(带有bug的三angular形“play”图标)button时,我得到以下结果: * What […]

对于sun.awt.X11GraphicsEnvironment,Gradle构build失败,出现NoClassDefFoundError:mergeDebugResources

我尝试构buildmicroG时总是遇到这个错误: $ ./gradlew build Skipping debug jar:microg-ui-tools:preBuild UP-TO-DATE :microg-ui-tools:preDebugBuild UP-TO-DATE :microg-ui-tools:checkDebugManifest :microg-ui-tools:preDebugAndroidTestBuild UP-TO-DATE :microg-ui-tools:preDebugUnitTestBuild UP-TO-DATE :microg-ui-tools:preReleaseBuild UP-TO-DATE :microg-ui-tools:preReleaseUnitTestBuild UP-TO-DATE :microg-ui-tools:prepareComAndroidSupportAnimatedVectorDrawable2531Library :microg-ui-tools:prepareComAndroidSupportAppcompatV72531Library :microg-ui-tools:prepareComAndroidSupportPreferenceV142531Library :microg-ui-tools:prepareComAndroidSupportPreferenceV72531Library :microg-ui-tools:prepareComAndroidSupportRecyclerviewV72531Library :microg-ui-tools:prepareComAndroidSupportSupportCompat2531Library :microg-ui-tools:prepareComAndroidSupportSupportCoreUi2531Library :microg-ui-tools:prepareComAndroidSupportSupportCoreUtils2531Library :microg-ui-tools:prepareComAndroidSupportSupportFragment2531Library :microg-ui-tools:prepareComAndroidSupportSupportMediaCompat2531Library :microg-ui-tools:prepareComAndroidSupportSupportV42531Library :microg-ui-tools:prepareComAndroidSupportSupportVectorDrawable2531Library :microg-ui-tools:prepareComTakisoftFixPreferenceV725310Library :microg-ui-tools:prepareDebugDependencies :microg-ui-tools:compileDebugAidl UP-TO-DATE :microg-ui-tools:compileDebugNdk UP-TO-DATE :microg-ui-tools:compileLint UP-TO-DATE :microg-ui-tools:copyDebugLint UP-TO-DATE :microg-ui-tools:compileDebugRenderscript UP-TO-DATE :microg-ui-tools:generateDebugBuildConfig UP-TO-DATE :microg-ui-tools:generateDebugResValues UP-TO-DATE :microg-ui-tools:generateDebugResources UP-TO-DATE :microg-ui-tools:mergeDebugResources java.lang.NoClassDefFoundError: Could not initialize class […]

依赖关系 – >无法创build“AppPlugin”types的插件

我试图继续在我的一个较老的项目上工作,这是大约一年前,并在当时工作很好,但现在我已经更新了AndroidStudio,它甚至不能build立了。 我得到一个错误,说我有两个相同的dex文件: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 为了解决这个问题,我可以简单地使用“gradle dependencies”来查找罪魁祸首,并排除错误的文件,但这是我遇到的实际问题。 当我做'gradle依赖关系',我得到以下错误: FAILURE: Build failed with an exception. * Where: Build file 'F:\Github\Coinbook\app\build.gradle' line: 1 * What went wrong: A problem occurred evaluating project ':app'. > Could not create plugin of type 'AppPlugin'. * Try: Run with –stacktrace option to get the stack trace. Run with […]

Android特定的Gradle产品风味组合

在我的代码中,我有一些从一个代码库派生的模板。 对于每个模板,我想添加特定的尺寸。 使用风味尺寸和产品口味我已经达到了这个代码: flavorDimensions "template", "color" productFlavors { templateA { applicationId "com.templatea" versionCode 1 versionName "1.0.0" flavorDimension "template" } templateB { applicationId "com.templateb" versionCode 1 versionName "1.0.0" flavorDimension "template" } templateC { applicationId "com.templatec" versionCode 1 versionName "1.0.0" flavorDimension "template" } blue { applicationId "com.blue" versionCode 1 versionName "1.0.0" flavorDimension "color" } green { applicationId […]

如何将生成的源文件夹添加到Gradle中的源path中?

我使用注释处理。 所以我使用apt插件 。 它在build/source/apt生成新的java源build/source/apt 。 这是我的build.gradle: apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'apt' apply plugin: 'war' apply plugin: 'gwt' apply plugin: 'jetty' sourceCompatibility = 1.7 version = '1.0' eclipse { classpath { downloadSources=true downloadJavadoc=true } } buildscript { repositories { mavenCentral() jcenter() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6' classpath […]

Gradle获取当前的特定任务的味道

我正在尝试处理google-services.json和不同的风格。 该文件说,我们需要在根文件夹中的文件。 我有一个任务,可以很容易地从风格文件夹复制文件到根文件夹: task CopyToRoot(type: Copy) { def appModuleRootFolder = '.' def srcDir = 'src' def googleServicesJson = 'google-services.json' outputs.upToDateWhen { false } def flavorName = android.productFlavors.flavor1.name description = "Switches to $flavorName $googleServicesJson" delete "$appModuleRootFolder/$googleServicesJson" from "${srcDir}/$flavorName/" include "$googleServicesJson" into "$appModuleRootFolder" } 然后,在afterEvaluate我的力量 afterEvaluate { processFlavor1DebugGoogleServices.dependsOn CopyToRoot processFlavor1ReleaseGoogleServices.dependsOn CopyToRoot } 这只适用于1种风味(静态定义)。 如何为每一个味道做到这一点? 我有四种口味。 如何获得正在编译的当前风味? [ […]

connectedAndroidTest和发布构buildtypes

我正在使用gradle:1.2.3 我想运行我的androidConntectTests(仪器testing)发布(签名,缩小)configuration,但我不能。 我的build设types: buildTypes { debug { minifyEnabled false debuggable true } robotium { debuggable true minifyEnabled true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { minifyEnabled true debuggable false signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 我已经读过,那些testing只能在debbugableconfiguration上运行,所以我做了“robotium”的构buildtypes(见上),但是它仍然不起作用。 当我尝试调用“gradle任务”时,仅显示connectedAndroidTest-Flavor-Debug,调用“connectedAndroidTest-Flavor-Release / Robobium”只会失败,并显示“未在根项目中find任务XXX”。 有什么办法让testingtesting运行在不同的构buildtypes?

shrinkResources设置为true,但所有未使用的资源(特别是可绘制的)没有被删除

我将shrinkResources设置为true,如下所示: releasepro { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationIdSuffix ".pro" } 但是这只是删除了一些未使用的资源。 我知道,gradle做了一些猜测,并留下了不确定的资源未使用。 有没有办法去除所有未使用的资源100%? 我读了关于在另一个线程中设置shrinkMode严格。 这会有帮助吗? 我无法尝试,因为我不知道在哪里设置它。 查看示例和文档,但不幸的是无法进入正确的页面。 有没有办法确保100%清除未使用的资源?