Articles of gradle

将多个项目和单个项目导入Android Studio

我需要能够在android studio中导入我们所有的项目,我需要能够将一个项目及其依赖项导入到android studio中。 目前的项目结构: 科/ 应用/ PROJECT1 / 的build.gradle 项目2 / 的build.gradle 项目3 / 的build.gradle 的build.gradle settings.gradle gradlew gradlew.bat gradle产出/ 其他的东西/ 我可以导入branch/Apps/build.gradle ,并导入Apps下的所有项目,并编译settings.gradle所有项目,并且工作正常。 但是,我还需要能够将一个项目及其依赖项导入到android studio中并且工作正常。 现在,当我尝试导入branch/Apps/Project1/build.gradle Android工作室会出现以下错误: You are using an old, unsupported version of Gradle. Please use version 1.8 or greater. Please point to a supported Gradle version in the project’s Gradle settings or […]

每次在Android Studio和Gradle中都必须重建项目

我在Android Studio 0.5.4和Gradle 0.9.2中有一个多项目构建设置,依赖于多个Android库项目和Java项目,我注意到Gradle认为我的代码是最新的,即使我已经制作了变化。 如果我更改了xml布局文件,我可以构建并运行并且更改生效。 但是对于代码更改,我必须使用Build-> Rebuild Project。

使用JaCoCo和Gradle进行espresso测试的代码覆盖率为0%

在我的esCopresso测试的JaCoCo代码覆盖率报告中,错过了所有的线和分支。 我在一个使用gradle 1.5.0构建的Android应用程序中使用JaCoCo。 我的gradle配置: apply plugin: ‘jacoco’ android { buildTypes { debug { testCoverageEnabled = true } } } jacoco { version ‘0.7.5.201505241946’ } 我关注这篇博文: Android应用程序的测试覆盖率报告 。 当我运行createDebugCoverageReport ,报告将在正确的文件夹(build / reports / coverage / flavor / debug / index.html)中生成。 但是,当我打开覆盖率报告时,我的代码覆盖率在每个指令和分支上都是0%。 一切都“错过”了。 首先我认为问题可能是源代码和测试代码的位置,但它们位于/src/main/java/和/src/androidTest/java/ 任何人都知道如何解决这个问题?

我发现两个gradle android插件 – 两者之间有什么关系吗?

我试图找出如何使用Gradle构建Android应用程序。 令我惊讶的是,我find了两个引用,一个来自jvoegele ,另一个来自Android Tools Project站点。 他们似乎表面上看起来不同。 所以我的问题是为什么有两种变体? 这两者之间有什么关系吗? 他们目前的状况如何? 我应该使用哪一个 – 它们的优点和缺点? 似乎Android的一个刚刚开始。 我期待有一些宝贵的意见,他们拥有使用Gradle构建Android应用程序的第一手经验。 感谢致敬 Santanu

Androidunit testing失败的Debug构建types

我的unit testing失败,android.util.Log中的方法d没有被模拟,但只有当我运行testDebug时。 如果运行testRelease一切正常,他们正确通过。 有谁知道为什么会这样? 从控制台和Android工作室运行gradle时也会发生同样的事情。

不同的风格构建types的不同字符串资源

假设我有一个字符串,我想根据我的构建types和风格进行更改。 实现这一目标的最佳方法是什么? 我创建了以下文件夹结构: app/src/main/ app/src/flavor1/ app/src/flavor2/ app/src/main/res/values/my_strings.xml app/src/flavor1/res/values/my_strings.xml app/src/flavor2/res/values/my_strings.xml 当我只想要每种口味的不同字符串时,这一切都有效。 现在我还要按构建types分隔这些字符串,所以我做了类似这样的事情: app/src/main/ app/src/flavor1/ app/src/flavor2/ app/src/flavor1Release/ app/src/flavor2Release/ 现在出现的问题是,如果我想在app/src/flavor1Release/res创建values文件夹,我会收到values文件夹已经存在的消息。 我该如何解决这个问题?

Android:如何解决图书馆依赖冲突

我正在开发一个Android库。 图书馆几乎没有依赖性。 我不确定如果开发人员将我的库与我库中已存在的其他依赖项一起使用会发生什么。 我试图谷歌搜索这个但找不到任何东西。 例如,我在我的库中使用版本X的Volley Library并将其作为gradle包发送。 开发人员使用版本Y和我的库导入Volley。 什么是在库(模块,jar或包)中包含依赖项的最佳方法,以便最大限度地减少冲突情况。

android studio生成依赖的aar

我有一个库项目(A)引用另一个jar文件(B.jar),但是在生成aar文件后,jar文件(B.jar)没有捆绑在输出aar文件中,当使用这个aar文件时,我得到了NoClassDefFoundError 。 有没有办法让gradle捆绑输出aar文件中的所有依赖类? 这是我的build.gradle: apply plugin: ‘com.android.library’ repositories { mavenCentral() } android { buildTypes { release { runProguard true proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.txt’ } } } dependencies { compile project(‘:common’) compile fileTree(dir: ‘libs’, include: [‘*.jar’]) }

许多小模块,或几个大模块,以获得最佳的构建性能?

几年前,当我第一次采用Gradle for Android(在Gradle 2.0之前)时,我发现使用并依赖于模块会有一些开销,所以我没有将我的项目分成更小的模块,而是创建了非常大的模块。 在尝试了一些其他构建系统(例如Buck)之后,通过将代码分成多个小模块来获得性能。 一些像Kotlin这样的现代编程语言甚至具有可见性修饰符,这些修饰符专门围绕将代码分割为模块的概念而构建。 我们目前处于Gradle 2.14.1(差不多3.0),在过去的几个版本中,他们引用了大量的性能提升。 随着过去几年对Gradle / Android插件的更改,现在它是否会生成更快的构建,以将代码分割成更小的模块,或者使用更少的大型模块?

使用多模块android库进行Gradle配置

回到历史 我有这个Android库,开发人员可以正常使用 compile ‘com.companyname.sdk:android-sdk:2.x’ 现在我们正在从头开始重新编写库来创建V3。 在这次重新组织中,我们设法将lib分解为模块。 所以可以说在V3上我们会有以下工件 compile ‘com.companyname.sdk:core:3.x’ compile ‘com.companyname.sdk:extra_1:3.x’ compile ‘com.companyname.sdk:extra_2:3.x’ compile ‘com.companyname.sdk:extra_ …. 这将在gradle结构上给出以下模块: root: |- test_app (apk just for testing, not deployed anywhere) |- sdk (aka: core) |- extra_1 |- extra_2 |- extra_ … etc 对于build.gradle中的每个extra模块,都provided (‘:sdk’)了一个provided (‘:sdk’)以便可以使用sdk模块中的所有内容,但实际上并不是在自己内部编译它。 但我还想为现有的主机应用程序提供一个简单的迁移路径。 这意味着,我希望V3上还有以下工件,它结合了core和extra_1 (它基本上是V2上的当前内容)。 compile ‘com.companyname.sdk:android-sdk:3.0.0’ 理论上这一切听起来都不错,但是我很难把它想象成一个gradle结构,以便我轻松导出所有这些。 我想要实现的目标 所以我希望能够在构建期间生成以下工件: android-sdk包括core和extra_1 core extra_1 ……所有其他额外的东西 我试过了什么 […]