Articles of android gradle

发布Android库(aar)与Bintrayselect的风味

我已经为我的项目添加了一些flavors (或者如果你想要的话)。 事实是,当我发布图书馆到bintray ,所有口味上传(这是伟大的),但我无法使用它们。 这里使用的插件是官方的插件。 上传的aar: androidsdk-0.0.4-fullRelease.aar androidsdk-0.0.4-fullDebug.aar androidsdk-0.0.4-lightRelease.aar androidsdk-0.0.4-lightDebug.aar 如您所述, fullRelease被命名为classifier ,请参阅文档第23.4.1.3节 。 我正在寻找一个解决scheme来select我想要上传的口味。 我已经看过bintray的例子( 这里和这里 ),还有其他的例子,但我仍然坚持。 这是我目前的脚本: apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' buildscript { repositories { jcenter() } } android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { minSdkVersion 9 targetSdkVersion 23 versionCode 64 versionName "0.0.4" } publishNonDefault true productFlavors […]

如何自定义产品口味的APK文件名?

我正在build.gradle脚本中自定义Android应用程序的APK文件的名称,如下所示: android { defaultConfig { project.ext.set("archivesBaseName", "MyApplication"); } } 现在我正在使用产品口味: android { productFlavors { green { applicationId "com.example.myapplication.green" } blue { applicationId "com.example.myapplication.blue" } } } 有没有办法自定义每个APK的名称? 我试用了archiveBaseName和baseName而没有成功。 最后我想拿出以下文件: build/outputs/apk/Blue-debug-1.2.1.apk build/outputs/apk/Blue-debug-unaligned.apk build/outputs/apk/Blue-release-1.2.1.apk build/outputs/apk/Blue-release-unaligned.apk build/outputs/apk/Green-debug-1.2.1.apk build/outputs/apk/Green-debug-unaligned.apk build/outputs/apk/Green-release-1.2.1.apk build/outputs/apk/Green-release-unaligned.apk

Gradle的构build过程非常缓慢,具有多项目结构

在包含大约140个项目/库的多项目设置上使用gradle进行构build时,构build时间花了1小时22分钟。 我正在使用 – –parallel 。 而我们的ANT构build需要不到20分钟,而没有平行build设。 这正是我所做的。 ./gradlew clean ./gradlew build –parallel 我做了一点testing,似乎德兴的时间最长。 有没有办法让gradle进程重新使用已经排好的东西? 如果这些库已经被创build,它应该重新使用已经存在的已定义的库。 我看到选项–no-rebuild ,但是当我运行这个选项它说下面 File '/path/to/project/build/libs/project.aar' specified for property 'bundle' does not exist. 我用普通的东西replace了文件path和项目名称。 使用Gradle 1.9-rc-3 更多信息(2014年1月15日): preDexDebug和preDexRelease每个项目preDexRelease花了很长时间。 比任何其他任务长得多。 进展(2014年1月15日): 好吧,现在,我把preDexLibraries = false到所有的build.gradle文件。 但是,我仍然想知道一个集中的地方,我可以把这个条目,它影响所有其他build.gradle文件。 但是,现在dexRelease和dexDebug花了很长时间。 有什么办法可以告诉构build只做dexDebug或dexRelease并跳过另一个? 进展(2014年1月15日): 使用assembleDebug工作。 但是,它似乎还没有重新使用已经存在dexed的库。 因为德兴还在永远。 每个项目大约需要一分钟。 有没有办法让gradle重新使用已经存在dexed的库? 还是有一个不同的原因,为什么build设还需要一个小时? 我们的ANT过程不到15分钟。

如何在Android项目中使用ThreeTenABP

我添加这个问题,因为我是新来的Java和Android,我search了几个小时试图弄清楚。 答案来自于相关答案的组合,所以我想我会logging下我所学习到的任何可能挣扎的人。 见答案。 对于一些背景,我的经验主要是在PHP和一点点的Ruby的Web开发。 我唯一的操作系统是Linux(Ubuntu Studio),我正在(开发)在Android Studio 2.1.2中开发我的第一个Android应用程序。 我的Java设置如下: >java -version > openjdk version "1.8.0_91" > OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

Gradle:错误:包名称不止一个库“com.google.android.gms”

这个错误信息是什么意思? 我的项目中没有重复的软件包 错误:执行任务':SimpleReader:processDebugResources'失败。 错误:多个库名称为“com.google.android.gms” 您可以使用android.enforceUniquePackageName = false暂时禁用此错误。但是,这是暂时的,将在1.0 我的build.gradle看起来像这样: buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.1' } } apply plugin: 'android' android { buildToolsVersion '19.0.3' defaultConfig { minSdkVersion 14 targetSdkVersion 17 } compileSdkVersion 17 packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } buildTypes […]

创buildAndroid库AAR,包括javadoc和源代码

我的团队正在开发一个Android库,用于我们开发的一些示例应用程序。 库被创build为一个AAR文件。 这是它的build.gradle apply plugin: 'com.android.library' apply from: 'deploy.gradle' android { compileSdkVersion 20 buildToolsVersion '20.0.0' packagingOptions { exclude 'LICENSE.txt' exclude 'LICENSE' exclude 'NOTICE' } defaultConfig { // Excluded for brevity } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { abortOnError false // if true, check all issues, including those that […]

Android Studio&ProGuard:无法parsing符号getDefaultProguardFile?

IDE :Android Studio 1.1.0 主题 :ProGuard 问题 :Android Studio无法识别的ProGuard文件或工具, getDefaultProguardFile 无法parsing ,应用程序中没有proguard-android.txt和proguard-rules.txt文件,请参阅以下图像:(从build.gradle) 如何解决这个问题,并实现ProGuard保护我的应用程序?

使用Gradle和ProGuard进行Android构build:“输出jar必须在inputjar之后指定,否则将为空”

我正在用Gradle创build一个不同风格的版本。 直到现在,它一直运行得非常好,直到我想启用Proguard 。 我为我的发布版本启用了minifyEnabled ,现在我有一个exception说: “ Caused by: org.gradle.internal.UncheckedException: java.io.IOException: The output jar […/app/build/intermediates/multi-dex/dev/release/componentClasses.jar] must be specified after an input jar, or it will be empty. “ 有谁知道是什么原因造成这个exception? 我基本上想在释放我的应用程序之前启用ProGuard。 下面是我的Gradle文件。 lintOptions { abortOnError false } dexOptions{ incremental true javaMaxHeapSize "4g" } defaultConfig { applicationId "…" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" multiDexEnabled true […]