Articles of gradle

gradle中的多味道编译依赖项

有没有办法在Android Studio(build.gradle)中通过多种口味编译依赖项? 我有2个flavorGroups,每2个变种。 在4种可能的组合中,我希望能够依赖于lib,只要我是最新的和免费的。 latestCompile或freeCompile有效,但latestFreeCompile没有。 这是我的build.gradle的相关部分: android { defaultConfig { minSdkVersion 7 targetSdkVersion 19 versionCode 15 versionName “1.9.” + versionCode } flavorGroups ‘sdk’, ‘cost’ productFlavors { latest { flavorGroup ‘sdk’ minSdkVersion 8 } sdk7 { flavorGroup ‘sdk’ minSdkVersion 7 versionName android.defaultConfig.versionName + “.sdk7” } free { flavorGroup ‘cost’ } pro { flavorGroup ‘cost’ } } […]

使用android studio混淆多个模块

我有gradle proguard的问题…我有以下模块: 应用:主应用模块。 有依赖ModuleA和ModuleC ModuleA:库模块。 有依赖ModuleB和jar依赖。 ModuleB:库模块 ModuleC:库模块 穿:穿app模块。 build.gradle文件: – App: buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’ } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile project(‘:ModuleA’) compile project(‘:ModuleC’) wearApp project(‘:Wear’) } ModuleA: buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } dependencies { compile fileTree(dir: ‘libs’, include: […]

Android studio gradle重复文件dagger编译器

将android studio更新为0.4.0并将gradle插件更新为0.7.1并使用dagger编译器将gradle版本更新为1.9后出现奇怪问题 的build.gradle android { packagingOptions { exclude ‘META-INF/DEPENDENCIES.txt’ exclude ‘META-INF/LICENSE.txt’ exclude ‘META-INF/NOTICE.txt’ } } dependencies { compile ‘com.android.support:support-v4:+’ compile ‘com.android.support:support-v13:19.0.+’ compile ‘com.google.code.gson:gson:2.2.4’ compile ‘com.squareup.dagger:dagger:1.2.0’ compile ‘com.squareup.dagger:dagger-compiler:1.2.0’ } 在构建中收到此错误 Execution failed for task ‘:MyApplication:packageDebug’. 在APK META-INF / services / javax.annotation.processing.Processor中复制的重复文件文件1:C:\ Users \ Mantas.gradle \ caches \ modules-2 \ files-2.1 \ com.squareup.dagger \ dagger-compiler \ 1.2.0 […]

Gradle中的Android库可以将其他Android库作为依赖项吗?

允许这种结构吗? MyProject/ | settings.gradle + app/ | build.gradle + libraries/ + lib1/ | settings.gradle | build.gradle + libraries/ + sublib1/ | build.gradle + sublib2/ | build.gradle + lib2/ | build.gradle 我有这个使用Ant但是使用Gradle我的项目找不到sublib1或sublib2。 当我运行gradle时,我收到此错误: * What went wrong: A problem occurred evaluating project ‘:libraries:lib1’. > Project with path ‘:libraries:sublib1’ could not be found in project ‘:libraries:lib1’. 这是来自MyProject的 […]

将集成测试与Android Studio中的unit testing分开

我正试图在Android Studio 0.9中分离出集成测试。 我已将以下内容添加到构建文件中: sourceSets { integrationTest { java.srcDir file(‘src/integrationTest/java’) } } task integrationTest(type: Test) { testClassesDir = sourceSets.integrationTest.output.classesDir classpath = sourceSets.integrationTest.runtimeClasspath } 我遇到了几个问题: 该任务将运行,但它没有其他项目文件可用,所以我得到有关缺少类的错误。 我发现了一些Java特定的解决方案,例如: http://selimober.com/blog/2014/01/24/separate-unit-and-integration-tests-using-gradle/ https://blog.safaribooksonline.com/2013/08/22/gradle-test-organization/ 但是我还没弄清楚如何使用Android Studio。 main和main.output各种组合以及依赖关系的各种组合似乎不起作用,我得到如下错误: Error:(33, 0) Could not find property ‘main’ on SourceSet container.. 这有意义,因为android插件定义了自己的源集,但这些也不起作用。 IDE无法将该目录识别为测试源目录。 出于测试目的,我将源集名称更改为androidTest并且它正确获取绿色文件夹图标,并且测试与已在androidTest定义的现有unit testing一起运行。

如何从gradle构建风格中排除res文件夹?

我需要从一个风格中删除一个特定的res文件夹。 sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] res.srcDirs = [‘res’] aidl.srcDirs = [‘src’] assets.srcDirs = [‘assets’] } } productFlavors { flavor1 { sourceSets { flavor1 { resources { exclude ‘res/drawable-mdpi/*’ } } } } flavorDimensions “flavor” } 但仍然drawable-mdpi文件夹来到apk。 所以任何人都可以说明我犯了什么错误。 谢谢Vivek

由于shrinkReleaseMultiDexComponents,Android版本构建失败

我在构建应用程序的发布版本时遇到了困难。 这是运行时得到的输出的一部分./gradlew assembleRelease –stacktrace –debug 在Android Studio中它会吐出同样的东西而我已经爬网,但还没有find解决方案。 17:57:41.664 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ‘:app:shrinkReleaseMultiDexComponents’ (up-to-date check took 0.002 secs) due to: No history is available. 17:57:41.665 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ‘:app:shrinkReleaseMultiDexComponents’. 17:57:41.717 [INFO] [system.out] ProGuard, version 5.2.1 17:57:41.745 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ‘:app:shrinkReleaseMultiDexComponents’ 17:57:41.745 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :app:shrinkReleaseMultiDexComponents FAILED 17:57:41.746 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :app:shrinkReleaseMultiDexComponents […]

Gradle无法为参数find方法compile()

我有一个hello world全屏android studio 1.5.1应用程序,我添加了gradle / eclipse-mars子项目。 除了将settings:’javalib’添加到settings.gradle之外,没有其他文件被修改。 添加项目lib依赖项 : project(‘:app’) { dependencies { compile project(‘:javalib’) // line 23 } } 从根构建构建文件并从命令行运行gradle,得到: 其中:构建文件’D:\ AndroidStudioProjects \ AndroidMain \ build.gradle’行:23 出了什么问题:评估根项目’AndroidMain’时出现问题。 无法在org.grad le.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@46 3ca82f上find参数[project’:javalib’]的方法compile()。 将java插件添加到根构建文件没有帮助。 我不认为它在错误的地方 。 根项目和添加的子项目都有gradle包装器。 任何指针将不胜感激。 谢谢 编辑:为了澄清,根构建文件是: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories […]

应用的AndroidManifest.xml中的元数据标记没有正确的值

我遇到了Robolectric我的AndroidManifest.xml出现问题的问题。 我的应用程序运行正常,但Robolectric失败了我的所有测试,甚至assertTrue(true) 。 错误是: android.view.InflateException: XML file /[blah]/build/res/all/debug/layout/activity_main.xml line #-1 (sorry, not yet implemented): Error inflating class fragment 引起的: java.lang.IllegalStateException: The meta-data tag in your app’s AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the element: 问题是我的清单中已经有了这一行。 以下是一些相关文件: AndroidManifest.xml中: 的build.gradle: buildscript { repositories { […]

Gradle – 每个productflavor构建sass(多文件夹)

我们创建了一个带有webview的Android应用程序,该应用程序显示了assets文件夹中的本地网站。 该项目具有不同的产品风味,可生成具有不同样式和内容但具有相同代码库(本机Java和HTML / JS)的不同应用程序。 对于每种风味,我们想要定义一个不同的sass文件,其中包含特定风味的颜色和调整。 我知道我需要在gradle中创建一个构建CSS文件的任务,但我不知道从哪里开始: 如何获取特定风味的assets文件夹的url? 我可以使用特殊的gradle插件来构建sass,还是必须创建执行“sass”命令的任务? 当我使用另一个像指南针这样的gradle插件时,如何为每种风格配置正确的文件夹? 插件设置位于顶级,而不是Android插件级别。