Articles of gradle

配置gradle以使用JUnit,Mockito,Hamcrest和Espresso

我有一个Android项目,使用Mockito,Hamcrest和Espresso来帮助测试。 无论我尝试使用Gradle构建文件,当我在做gradle androidTestCompile之后尝试运行我的测试时,我得到了org.hamcrest.Matcher.anyOf的NoSuchMethodError 。 这是我目前的配置: 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 ,我认为它们不应该干扰。 这个模块为’androidTestCompile`的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 | \— org.objenesis:objenesis:2.1 +— com.google.guava:guava:14.0.1 […]

Android gradle uploadArchives构建时

我有我的uploadArhives到Maven存储库.aar发布。 但我必须gradlew uploadArhives从控制台运行gradlew uploadArhives ,如何编写代码以使其与每个构建或发布版本一起调用? uploadArchives { repositories { mavenDeployer { def credentials = [ userName: NEXUS_USERNAME, password: NEXUS_PASSWORD ] repository(url: MAVEN_REPO_URL, authentication: credentials) pom.artifactId = ‘aaa’ pom.version = version pom.packaging = ‘aar’ pom.groupId = ‘bbb’ } } } 编辑 : 我认为,我们可以定义function: def uploadToMaven = { uploadArchives } 但是如何在每次构建时执行它?

Android Studio build.gradle – 无法解析符号’android’

我已经完成了这里的教程,除了我的build.gradle,一切正常。 “android”部分中的所有内容都带有下划线,并显示“无法解析符号”错误消息。 这是在Android Studio 0.3.1中。 我甚至尝试重新安装Android Studio,它仍然无法正常工作。 buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.6.+’ } } apply plugin: ‘android’ repositories { mavenCentral() } android { compileSdkVersion 19 buildToolsVersion “17.0.0” defaultConfig { minSdkVersion 7 targetSdkVersion 18 } } dependencies { compile ‘com.android.support:appcompat-v7:+’ }

如何查看Android Studio中Gradle任务执行的CLI命令?

我正在尝试更好地了解Android Studio在构建Android应用程序时幕后发生的情况。 我一直在阅读Gradle,但有一点我无法弄清楚如何查看Gradle调用的相应CLI命令和参数。 它似乎是抽象的,不会记录到Gradle Console或Event Log 。 我最接近看到Gradle内部发生了什么是AOSP代码。 2.2.2来源: https://android.googlesource.com/platform/tools/base/+/gradle_2.2.2/build-system/gradle-core/src/main/java/com/android/build/gradle/tasks 目标 我希望能够看到Android Studio中Gradle任务生成的相应CLI命令。 用例示例 我想深入了解Legacy Android Build Process。 这包括通过以下内容: 源代码/库代码 – > javac – > Java字节码(.class) – > proguard – >最小化字节码(.class) – > dex – > DEX字节码(.dex) 例如,我想查看AndroidJavaCompile调用的相应javac命令。 https://android.googlesource.com/platform/tools/base/+/gradle_2.2.2/build-system/gradle-core/src/main/java/com/android/build/gradle/tasks/factory/AndroidJavaCompile。 java的 我担心这样做的唯一方法是直接查看源代码,甚至直接从源代码构建。 尽职调查 我已经在Google,Android博客,Google I / O会谈,Android书籍等方面进行了大量搜索。 我一直无法find直截了当的答案。

对于sun.awt.X11GraphicsEnvironment中的Gradle构建失败,NoClassDefFoundError:mergeDebugResources

当我尝试构建microG时,我总是遇到这个错误: $ ./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 […]

java.lang.ClassNotFoundException:org.sqlite.JDBC Androidstudio Java模块

我没有线索(太愚蠢),为什么我的应用程序在运行时没有findjdbc类: Exception in thread “main” java.lang.ClassNotFoundException: org.sqlite.JDBC 你有什么提示吗? 在此repo中完成简化的用例: https : //bitbucket.org/solvapps/jdbcapp 我已经在我的Androidstudio项目中添加了一个名为“维护”的模块来维护内容,这些内容不应该包含在应用程序中。 (我已经用另一个应用程序完成了这个)。 我保持平衡: apply plugin: ‘java’ dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) } sourceCompatibility = “1.8” targetCompatibility = “1.8” repositories { mavenCentral() } dependencies { compile ‘org.xerial:sqlite-jdbc:3.16.1’ compile ‘commons-net:commons-net:3.3’ compile ‘org.zeroturnaround:zt-zip:1.11’ compile ‘org.zeroturnaround:zt-zip:1.11’ compile ‘org.apache.commons:commons-lang3:3.5’ } 同步后,我在外部库中看到了jar。 我的代码,不是红色的: public static void connect(String […]

无法获取未知属性’processReleaseGoogleServices’

我更新了使用Android Studio 2.2和Gradle 2.2.0。 现在我有一个问题。 我按照这篇文章https://medium.com/google-cloud/automatic-per-variant-google-services-json-configurations-with-gradle-d3d3e40abc0e#.g1p7c1tx2配置两个“google-services.json”文件到用于dev vs prod构建,并在我的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中的“运行应用程序”(三角形“播放”图标)或“调试应用程序”(带有错误的三角形“播放”图标)按钮时,我得到以下信息: * What […]

执行自定义任务时,Gradle无法find模块的输出jar

我有一个包含三个模块的Gradle项目,每个模块都对下一个模块具有嵌套依赖性: android app module, which depends on… android lib module, which depends on … java lib module (called core) 在我的lib模块中,我正在尝试创建一个自定义任务(生成javadoc,但这可能不相关) 库/的build.gradle: apply plugin: ‘com.android.library’ android { … } android.libraryVariants.all { variant -> task(“${variant.name}Docs”, type: Javadoc) { failOnError true source = variant.javaCompiler.source classpath = files(((Object) android.bootClasspath.join(File.pathSeparator))) classpath += files(variant.javaCompiler.classpath.files) // THIS LINE IS CAUSING ERROR } […]

Checkstyle插件不会添加gradle任务

我想在我的gradle项目中使用checkstyle插件,gradle文档说它将添加一些任务: https ://docs.gradle.org/current/userguide/checkstyle_plugin.html checkstyleMain, checkstyleTest, checkstyleSourceSet 我将其添加到我的app build.gradle文件中: apply plugin: ‘checkstyle’ 我想从cmd运行gradle任务来执行代码样式检查,但是没有一个checkstyle任务。 我输入以下内容检查了整个列表: ./gradlew tasks 我还尝试将checkstyle jar作为库依赖项添加到app模块。 任何人都可以告诉我我做错了什么,我怎么能得到我的checkstyle任务?

Android工作室 – Gradle – GitHub Repo

有没有人知道是否可以使用github repo作为依赖关系,而不会将其发布到maven central。 假设我正在开发一个拥有它自己的github repo的android库。 我希望能够在我的android工作室项目中“编译”这个库有gradle依赖,而不必发布到maven central(至少目前)。 换句话说:我想使用不在maven central上的依赖项。 这是一个直接的github repo(一个也使用gradle的android库)。 我想我的build.gradle做这样的事情: dependencies { // Google Play Services (normal dependency) compile “com.google.android.gms:play-services:5.2.08” // The library I want to pull from github compile “path_to_my_github_repo” } 谢谢!