Articles of gradle

如何在Gradle脚本中禁止Android Lint警告

我的Android Lint报告中有以下恼人的警告: Gradle Dependency: Obsolete Gradle Dependency A newer version of com.android.support:appcompat-v7 than 20.+ is available: 21.0.0-rc1 问题是我不能使用21.0.0-rc1,因为它不适用于我的项目。 我怎样才能抑制警告?

每个变种的Android Gradle自定义任务

我有一个使用Gradle构建的Android应用程序,其中包含BuildTypes和Product Flavors(变体)。 我可以运行此命令来构建一个特定的apk: ./gradlew testFlavor1Debug ./gradlew testFlavor2Debug 我必须在每个变体的build.gradle中创建一个自定义任务,例如: ./gradlew myCustomTaskFlavor1Debug 我为此创建了一个任务: android.applicationVariants.all { variant -> task (“myCustomTask${variant.name.capitalize()}”) { println “*** TEST ***” println variant.name.capitalize() } } 我的问题是,所有变体都调用了这个任务,而不是我正在运行的唯一variables。 输出: ./gradlew myCustomTaskFlavor1Debug *** TEST *** Flavor1Debug *** TEST *** Flavor1Release *** TEST *** Flavor2Debug *** TEST *** Flavor2Release 预期产量: ./gradlew myCustomTaskFlavor1Debug *** TEST *** Flavor1Debug 如何定义自定义任务,动态,每个变体,然后使用正确的变体调用它?

切换到gradle后,android自定义视图属性不起作用

所以我最近迁移到gradle现在我的自定义视图属性返回null 我的项目看起来像这样 –custom_icon_view //保存带有自定义属性的自定义视图的库 – 我的应用程序//这是实际使用自定义视图的主应用程序 在我的布局中,我有如下定义的命名空间: xmlns:iconview=”http://schemas.android.com/lib/be.webelite.iconview” 因为使用apk / res-auto返回错误,无法识别attibutes 这就是我试图获取在xml中定义的图标名称的方法,这用于完美地工作,但现在它没有。 我改变的只是迁移到gradle。 final TypedArray a = context.obtainStyledAttributes(attrs,be.webelite.iconview.R.styleable.icon); icon_name = a.getString(be.webelite.iconview.R.styleable.icon_name); 所以我猜我的gradle.build文件导致了问题? 我把库设置为 apply plugin: ‘android-library’ 结束主应用程序gradle.build为 apply plugin: ‘android’ 这让我头疼2天了:(任何帮助/提示非常适合。 这是我的gradle文件 http://pastie.org/private/h57o8nanydosq0dtm6eiq 这是文件夹结构 http://pastie.org/private/nvbzomx2zeagdpzt8qqjsq 这是我在xml中声明我的视图的方式 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:iconview=”http://schemas.android.com/apk/lib/be.webelite.iconview” android:orientation=”vertical” android:layout_width=”match_parent” android:layout_height=”match_parent” android:background=”@color/background_gray”> IconView> res> values目录中的attrs.xml

无法让Robotium在Android Studio中运行

我很难让Robotium在基于gradle的Android Studio上工作,我找不到办法 这是我的build.gradle文件 buildscript { dependencies { repositories { mavenCentral() mavenLocal() } classpath ‘com.android.tools.build:gradle:0.5.+’ } } apply plugin: ‘android’ repositories { mavenCentral() /* maven { url “https://oss.sonatype.org/content/repositories/snapshots” }*/ } sourceSets { testLocal { java.srcDir file(‘src/test/java’) resources.srcDir file(‘src/test/resources’) } } android { compileSdkVersion 17 buildToolsVersion “17.0.0” defaultConfig { minSdkVersion 15 targetSdkVersion 17 } sourceSets { instrumentTest.setRoot(‘src/test’) […]

从.bat调用Gradle会导致批处理执行停止

我正在自动发布我的Android应用程序,我正在使用Gradle ,非常实用! 只是一个问题,请考虑这个.bat文件(在Windows 7下): :: assemble the project gradle assemble -Pprofile_name=%profile_name% -p%destination_dir% ::copy apk to repository copy “D:\compile\myapp\build\apk\*.apk” “d:\build_repository” 好吧,永远不会执行复制命令。 似乎在调用gradle实用程序后执行停止。 任何想法? Gradle内部的构建以成功结束,完全没有错误……

新的Android Gradle Build System构建配置包名称与Provider Authority的冲突

我已经更新了我的项目以使用新的基于Gradle的构建系统,很大程度上是因为我一直很恼火,因为我使用设备进行开发,所以我无法在我的设备上安装我的应用程序来使用它。 我在新构建系统的packageNameSuffix产品中看到了很多承诺。 我遇到的问题涉及清单中包名称以外的其他问题。 还有其他部分必须是唯一的,包括权限(特别是对于GCM)和ContentProvider权限。 尝试使用.debug后缀进行安装时,我收到的错误是该程序包的GCM权限尚未定义,并且我正在尝试安装重复的提供程序。 是否有一个variables,我可以放在我的清单而不是这些字符串,以便构建系统也将适当地替换它们?

如何在Gradle构建脚本(Android)中定义和使用常量?

我正在使用Gradle作为其构建系统的Android应用程序。 我的目标是使用值(包名称)作为applicationId : productFlavors { orange { applicationId “com.fruits.android.orange” // … 但也要通过BuildConfig公开它,以便Java代码可以访问它。 此访问必须来自外部风格(即,应用程序的免费版本需要知道付费版本的软件包名称,以便它可以提示用户在Play商店中进行升级)。 所以我想做那样的事情: productFlavors { orange { applicationId orangeProPackage // … buildConfigField ‘String’, ‘ORANGE_PRO_PACKAGE’, “$orangeProPackage” // ? 只有我不确定如何定义orangeProPackage以便它在整个build.gradle中可见,并且不会破坏脚本。 因为有几种不同的味道,最好是我能以某种方式将所有这些常量分组(我猜?): def proPackages = [ orange: “…” apple: “…” banana: “…” ] 然后以一种干净,描述性的方式引用它们,如proPackages.orange等。 问题是,如何实现这一目标? 这不是重复的是否可以在Gradle中声明一个可用于Java的variables? 我已经看到了这个问题(以及其他一些问题)。 我知道如何声明buildConfigFields,我已经有很多了。 我的问题是重用与buildConfigField 和 applicationId相同的值。

使用gradle运行UI自动化测试而不卸载

当我在Android Studio中运行检测测试时,我发现应用程序之后仍然在设备上。 但我无法从使用gradlew的命令行中做到这一点。 我的目的是运行测试,保存例如/ data / data / MyApp / cache / screenshots中的屏幕截图,然后使用adb pull下载这些屏幕截图。 ./gradlew connectedAndroidTest 导致应用程序被卸载。 我也试过了 ./gradlew connectedAndroidTest -x uninstallAndroidTest 但这没有任何区别。 导致卸载的原因是什么,我该如何避免?

将gradle项目导入eclipse

我有把这个库导入eclipse的问题。 我做的事情: 运行下载并安装它的gradlew.bat(内部项目) 运行CMD 使用命令“set ANDROID_HOME = C:\ dev \ android-sdk-windows”设置我的SDK 运行命令gradlew build 成功构建图像后,我试图将项目导入我的日食,但它不完整(没有任何类) 这是我第一次使用gradlew,你能告诉我我做错了什么吗?

如何在Androidunit testing中读取仅测试文件

对于我的Android应用程序,我正在编写需要读取一些文件的unit testing。 由于这些是仅测试文件,我不希望它们在我的res文件夹中,因为我不希望它们最终出现在我的最终.apk文件中。 我想做一些类似于这个问题但使用新添加的(在Gradle 1.1中) unit testing支持 (而不是仪器测试)。 我的项目结构如下: /app /src /main /java/my.module/myClass.java /res/production_resources_go_here /test /java/my.module/myClassTest.java /resources/testFile.txt 我的myClassTest测试应该是什么样才能成功读取testFile.txt ?