Articles of 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 ?

AndroidStudio中的OpenCV库错误

我正在处理我正在处理的当前Android项目的问题,它将OpenCV库作为模块导入并设置为依赖项。 将Android Studio从0.8.14更新为1.0后,尝试同步Gradle我收到以下错误: 错误:库项目无法设置applicationId。 applicationId在默认配置中设置为“org.opencv”。 我想发布我的项目结构和成绩文件,但我还无法上传图片。

从另一台具有不同Gradle版本的PC导入Android Studio项目?

我有一个在Android Studio 1.3.2版本中编写的Android工作室项目。 现在在另一台安装了Android Studio 2.1.2的PC上我想导入或打开该项目。 但是,当我尝试,并在打开时,我的Gradle版本出现错误,并希望我下载必要的Gradle版本。 但出于我的原因,我不想用Android studio下载新数据。 如何手动将旧PC Gradle转移到新PC Gradle? 或者有更简单的方法来解决这个问题?

手动添加带有依赖性pom / iml文件的aar

由于我不能使用私人专家来共享我的图书馆,我正在考虑共享aar并导入另一个项目。 当aar和jar文件不包含任何依赖项时,问题就出现了。 所以一旦我在android studio中手动导入aar(使用Import .JAR / .AA Package)就没有依赖关系,我必须再次手动添加所有依赖项。 我已经通过gradle任务生成了一个pom文件,虽然我找不到任何方法在项目上手动导入它。 在“导入.JAR / .AA包”自动生成的build.gradle文件中: configurations.maybeCreate(“default”) artifacts.add(“default”, file(‘TestSample_1.0.0.aar’)) 有没有办法添加pom / iml文件? 就像是: artifacts.add(“default”, file(‘pomDependencies.xml’))

为什么android gradle找不到junit? 为什么不在远程存储库中搜索它?

为什么不在远程存储库中搜索它? 毕竟我在我的gradle脚本mavenCentral()的顶部 buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:1.1.0’ } } apply plugin: ‘com.android.application’ android { compileSdkVersion 19 buildToolsVersion “20.0.0” 和: dependencies { compile fileTree(dir: ‘libs’, include: ‘*.jar’) compile project(‘:lvl-licensing’) testCompile ‘junit:junit:4.12’ } 结果是: $ ./gradlew –info build . . . Creating configuration testReleaseProvided. Creating configuration testReleaseWearApp. FAILURE: Build failed with an […]

Android Studio 3.0 DexArchiveBuilderException

编译仪器测试时我遇到了这个错误。 错误:com.android.builder.dexing.DexArchiveBuilderException:无法处理/Users/rafaelruizmunoz/SourceTree/Weather/app/build/intermediates/transforms/desugar/androidTest/debug/1.jar 错误:com.android.builder.dexing.DexArchiveBuilderException:dexing org / assertj / core / api / LongPredicateAssert.class时出错 错误:com.android.dx.cf.code.SimException:默认或静态接口方法,不使用–min-sdk-version> = 24 我尝试在multiDexEnabled中启用/禁用multiDexEnabled ,但没有任何帮助。 我的build.gradle android : android { compileSdkVersion 27 defaultConfig { applicationId “com.**.weather” minSdkVersion 16 targetSdkVersion 27 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” multiDexEnabled = true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } compileOptions { […]