Articles of android gradle

gradle:Android Studioinheritancebuildtype

我有gradle(Android Studio)4种构建types android { buildTypes { release { … } debug { … } kindle { … } kindle_debug { … } } } 我知道,我的src文件夹可以为每个构建types提供一个文件夹。 所以它最终成了 src/ — debug — kindle — kindle_debug — main // used for every project — release 目前kindle与release相同, kindle_debug与debug相同。 如何避免复制src文件夹? 有没有办法从release和debuginheritance或让我自己在build.gradle文件中设置src文件夹? 编辑:一个似乎有效的解决方案是设置符号链接,但我想使用Mac OS和Windows操作系统,而不是每个新用户都希望自己设置符号链接。 编辑2:我现在使用产品口味,因此,我可以调试/发布和谷歌,亚马逊和三星。 这是我的最佳解决方案。

如何使用flavorDimensions为每个风味组合设置不同的applicationId?

我有和旧的Android应用程序,我正在尝试迁移到android gradle构建系统。 该应用程序目前内置于多项目设置中,并作为四个不同的应用程序发布(包括两个不同的数据集和两个数据集的免费/付费版本)。 我已经设法通过使用flavorDimensions(以前称为flavorGroups)来摆脱多项目设置,但我无法弄清楚如何为每种风味组合设置不同的applicationId。 由于应用程序版本已经发布,我需要保留与当前版本相同的应用程序。 由于我的原始包命名是如何完成的,我不能简单地使用flavor-buildtype与“packageNameSuffix”的组合(如果它是一个未发布的应用程序,那将是一个很好的选择)。 https://stackoverflow.com/a/20956353/4177090正在回答如何使用不同的源文件夹进行风味组合,而不是如何(如果可能的话)为构建文件中的每个组合设置特定配置。 Gradle构建文件片段: flavorDimensions “price”, “dataset” productFlavors { free { flavorDimension “price” } paid { flavorDimension “price” } dataset1 { flavorDimension “dataset” } dataset2 { flavorDimension “dataset” } } 我想在我的gradle构建文件中有类似下面的内容(请注意我的命名是如何unlogic的,这就是为什么我不能使用packageNameSuffix): freeDataset1 { applicationId “com.beansys.freeappdataset1” } freeDataset2 { applicationId “com.beansys.freedataset2” } paidDataset1 { applicationId “com.beansys.dataset1paid” } paidDataset2 { applicationId “com.beansys.mypaiddataset2” }

Android Studio插件太旧了

我正在同步很好,然后当我尝试在Android Studio的设备上运行测试时,我开始收到错误: Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable … 我环顾四周,从gradle网站上发现最新版本是2.10,我尝试将其添加到我的依赖项中,没有运气。 我尝试了各种版本号,其中包含以下各种错误: Could not find com.android.tools.build:gradle:2.1 Searched in the following locations … 我从所有的搜索中了解到它显然是一个错误版本的gradle – 但是我应该使用的当前版本标签是什么,我怎么知道它安装在我的机器上? 我一直在更新Android Studio。 所以我目前在build.gradle中: dependencies { classpath ‘com.android.tools.build:gradle:2.0.0-alpha1’ }

产品风味:find重复的类

我有一个非常愚蠢的问题,但我几小时后就坐在我的应用程序前面,但我无法理解问题所在。 我有一个Android应用程序(用kotlin编写),我想制作两种产品风格并覆盖产品风格的类/文件: 所以我的gradle脚本是这样的: apply plugin: ‘com.android.application’ apply plugin: ‘kotlin-android’ android { … productFlavors { foo { applicationId “com.foo” } } } 我的文件结构如下: – src – androidTest – foo – java – com – example – Bar.kt – main – java – com – example – Bar.kt – test 所以基本上我想在foo产品风格中覆盖Bar.kt文件,但不知何故它不起作用:它说类Bar是重复的。 任何提示?

如何在库模块中添加.aar依赖?

我有一个库模块的.aar文件。 我想在其他项目的库模块中将它用作库或依赖项。 我该怎么做? 我尝试了以下链接提供的选项: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/ 它只有在我的项目的应用程序模块中添加.aar引用时才有效。 但不在图书馆模块中工作。 谢谢。

无法解决Android Studio新项目中的com.android.support:appcompat-v7:26.1.0

我知道这个问题: 无法解决:com.android.support:cardview-v7:26.0.0 android 无法解析com.android.support:appcompat-v7:26.1.0 [重复] 我读过这些文件: 迁移到Gradle 3.0.0的Android插件 迁移到Android 8.0 所以我发布这个问题,认为它不是重复的。 我安装了Android Studio 3.0.1。 之前我没有任何以前的版本,我开始了一个新项目。 Gradle文件中的每个设置都是由Android Studio自己设置的,我已经全部检查过了。 这些是文件内容: build.gradle(模块:app) apply plugin: ‘com.android.application’ android { compileSdkVersion 26 defaultConfig { applicationId “com.example.administrator.as301test” minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { […]

Gradle build:任务执行失败’:app:lint’

我正在使用Android Studio 2.0,当发生奇怪的事情时,我正试图运行我的程序。 我运行了gradle的build命令,我收到了这个错误: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:app:lint’. > Lint found errors in the project; aborting build. Fix the issues identified by lint, or add the following to your build script to proceed with errors: … android { lintOptions { abortOnError false } } […]

Android Gradle在非调试版本上运行测试

我有一个包含三种不同构建types的项目:debug,beta和release。 我的测试包总是为调试版本创建,但QA使用beta版本,我们希望QA在其大量设备上运行这些测试。 我正在尝试为QA创建一个测试apk,它由与beta版本相同的密钥签名。 通过Android-Gradle文档,我没有看到任何告诉我我不能这样做的东西,但我没有看到配置它。 无论如何我可以配置组装测试apk时使用哪个密钥库? 或者有没有办法创建一个未签名的测试apk?

Gradle:assembleDebug在加载应用程序之前需要一些时间

我昨天从Eclipse迁移到Android Studio 5.x. 这真好。 然而,当我运行应用程序来编译并将其安装到我的手机中时,它需要比eclipse更多的时间。 我点击运行,它开始制作应用程序。 任务说: Grandle: Executing tasks [:mypackage:assembleDebug] 。 完成后,称Grandle invocation completed successfully in x min x sec 。 然后加载它。 问题是它有时可能只需要20秒,但其他时间只需2-3分钟。 哪个是烦人的等待时间 。 这次执行是否必须在每次编译之前始终运行? 我可以关闭它还是缩短它的时间? 如果这个问题不准确,我很抱歉,但我不熟悉爷爷如何在AS中完全运作。

Gradle:添加依赖项的优点/缺点

在build.gradle添加依赖项的一些优点/缺点是build.gradle ,而不是将它们添加为依赖库? dependencies { compile project(‘:library’) … compile ‘com.stackoverflow.android:some-great-library:1.0’ … } 在开发Android项目的过程中,我经常遇到一些很棒的库,它们都是我一直在寻找的精确解决方案。 但是,正如我所需要的只是这些特定库所提供的内容的一小部分,我担心如果将它们添加为Gradle dependencies是一种过度杀伤力 。 根据@ CommonsWare的评论,我有更具体的问题。 是否添加依赖项: 以明显的速度减慢编译时间? 增加release-apk和debug-apk的大小,增加依赖的大小?