Articles of gradle

基于Gradle中的构建变体的不同drawable

我的gradle文件中有两种风格:flavor1和flavor2。 与构建types一起,它们创建以下构建变体: flavor1-debug flavor1-release flavor2-debug flavor2-debug 假设我想为每个变体设置不同的drawable,我应该把它放在哪里? 我的文件夹结构是 src |__ main |__ flavor1 |__ flavor2 |__ debug |__ release 据我所知,我知道 所有资源(Android资源和资产)都使用覆盖优先级,其中构建types会覆盖产品风格,后者会覆盖主要的sourceSet。 这意味着,如果我将它放在Build Type文件夹中,那么调试变体将具有相同的调试drawable,并且release变体将具有相同的release drawable。 我想我可以从头开始创造更多特定的口味,例如flavor1release,flavor1debug,flavor2release,flavor2debug,但最终会有8个变种。 我可能不会根据这个构建一些构建types,但这似乎不是很干净。

奇怪的Gradle错误

当我升级到8.2时,My Gradle随机停止工作。 我以前一直在使用8.1,它运行良好。 我注意到这是一个问题,因为它不会带来LogCat。 这是gradle apply plugin: ‘android’ android { compileSdkVersion 19 buildToolsVersion ‘20.0.0’ defaultConfig { applicationId ‘com.Hype.Hype’ minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName ‘1.0’ } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } sourceSets { main { java.srcDirs = [‘src/main/java’, ‘src/main/java/Location/’] } } productFlavors { } } dependencies { compile […]

Gradle Android:如何在不使用–info的情况下显示测试结果

我正在使用Gradle Android插件运行android测试,并希望查看单独的测试结果。 从问题的答案Gradle:如何在控制台中实时显示测试结果? 看来我可以使用–info (打印很多其他详细的垃圾我不关心)或者使用这个只适用于Java插件的闭包(不是Android插件) test { afterTest { desc, result -> println “Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}” } } 当我运行connectedCheck任务时,我可以使用其他选项/闭包只是打印单个测试结果而没有其他所有“详细程度”。

如何在Gitlab CI中缓存Gradle依赖项

我在我的Android项目中的gitlab-ci.yml文件中添加了缓存属性。 cache: paths: – .gradle/wrapper – .gradle/caches 但是当我运行./gradlew assemble ,在每个管道中,它会下载所有gradle依赖项,这会导致构建时间变慢。

java.lang.NullPointerException(无错误消息)APK构建

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { maven { url “https://plugins.gradle.org/m2/” } jcenter() } dependencies { classpath “gradle.plugin.me.tatarka:gradle-retrolambda:3.3.0” classpath ‘com.android.tools.build:gradle:2.2.1’ } } allprojects { repositories { jcenter() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir } :app文件 apply plugin: ‘me.tatarka.retrolambda’ apply plugin: ‘com.android.application’ […]

Android库 – 使用Gradle将多个变体发布到本地Maven存储库

我正在使用Android Gradle插件0.13.2,Android Studio 0.8.11,Gradle 2.1和maven插件。 我想用一个命令(任务)将我的Android库的多个变体(flavor + buildtypes)安装到本地Maven存储库。 目前Android Gradle插件0.13.2允许我将publishNonDefault标志设置为发布所有变体,但正如文档所述,它将使用与Maven Repository不兼容的分类器发布变体。 我现在的解决方法是使用defaultPublishConfig“myVariant”并为我的每个变体更改它。 apply plugin: ‘com.android.library’ apply plugin: ‘maven’ android { defaultPublishConfig “myVariant” . . . } task installArchives(type: Upload) { repositories.mavenInstaller { configuration = configurations.getByName(Dependency.DEFAULT_CONFIGURATION) pom.groupId = “com.company” pom.artifactId = “mylibrary” pom.version = “1.0.0-myVariant” } } 我想有一个任务可以正确地将所有变种发布到本地Maven存储库。

新的android工作室风味

我刚刚更新了我的android工作室并遇到了以下错误。 Error:java.lang.RuntimeException: Unexpected scopes found in folder ‘D:\****\****\****\app\build\intermediates\transforms\dexMerger\dev_demo\debug’. Required: EXTERNAL_LIBRARIES. Found: EXTERNAL_LIBRARIES, PROJECT, SUB_PROJECTS 我试过关闭,清洁和建造,但它不起作用。 有人遇到过同样的问题吗?

具有相同名称的Android gradle模块

我正在开发一个使用以下依赖项的Android项目: org.glassfish.jersey.core jersey-client 2.17 但是,此依赖关系具有模块javax / inject的2个定义,如gradle依赖关系树中所示: +— org.glassfish.jersey.core:jersey-client:2.17 | +— org.glassfish.jersey.core:jersey-common:2.17 | | +— org.glassfish.hk2:hk2-api:2.4.0-b10 | | | +— javax.inject:javax.inject:1 | | +— org.glassfish.hk2.external:javax.inject:2.4.0-b10 在尝试运行Android应用程序时,我收到错误: com.android.dex.DexException: Multiple dex files define L/javax/inject/Inject 我已经尝试排除这些模块中的任何一个,但这不起作用,因为依赖关系依赖于它们来进行方法调用。 有没有其他解决方案来解决这个冲突?

对于使用Gradle进行APK扩展,play_licensing会使用downloader_library抛出AIDL错误

我尝试使用APK Expansion libs zip_file和downloader_library(需要play_licensing)。 zip_file工作正常,因为它没有依赖项,但是当我尝试Gradle同步时,play_licensing会引发错误。 Android Studio吐出此错误日志: Information:Gradle tasks [:app:generateGoogleDebugSources, :app:libs:downloader_library:generateDebugSources, :app:libs:play_licensing:generateDebugSources, :app:libs:zip_file:generateDebugSources] Information:/Users/faiz/Projects/Android/TogetherTime/app/libs/play_licensing/aidl/ILicenseResultListener.aidl:21 interface ILicenseResultListener should be declared in a file called com/android/vending/licensing/ILicenseResultListener.aidl. Information:2 errors Information:0 warnings Information:See complete output in console /Users/faiz/Projects/Android/TogetherTime/app/libs/play_licensing/aidl/ILicensingService.aidl Error:(19) couldn’t find import for class com.android.vending.licensing.ILicenseResultListener Error:(19) Execution failed for task ‘:app:libs:play_licensing:compileReleaseAidl’. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Users/faiz/Projects/Android/android-sdk-macosx/build-tools/19.0.3/aidl -p/Users/faiz/Projects/Android/android-sdk-macosx/platforms/android-19/framework.aidl […]

Android Studio 2.1.3 – DefaultSourceDirectorySet问题

今天早上从2.1.2 – > 2.1.3更新了Android Studio并收到以下gradle同步错误: 错误:无法find方法’org.gradle.api.internal.file.DefaultSourceDirectorySet。(Ljava / lang / String; Ljava / lang / String; Lorg / gradle / api / internal / file / FileResolver;)V’。 我很确定它与以下库项目有关: buildscript { repositories { mavenCentral() jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.1.3’ classpath ‘com.google.protobuf:protobuf-gradle-plugin:0.7.0’ } } apply plugin: ‘com.android.library’ apply plugin: ‘com.google.protobuf’ android { compileSdkVersion 23 buildToolsVersion “22.0.1” defaultConfig […]