Articles of build.gradle

在Gradle中为Android中的库项目构建变体

我正在尝试使用Gradle配置一个包含一些外部库的项目。 使用Gradle我可以使用Build Variants为主应用程序设置不同的环境配置(在配置文件中有一个类),这样我就可以根据这些variables执行代码。 问题是我如何为图书馆项目做同样的事情? 我为这个项目创建了这个库,我想为不同的场景设置不同的Build Variants。 例如:在库中,当以调试模式运行时,然后打印所有日志,以便我可以在开发时看到它们。 在发布模式下不要。 文件结构: src —– > debug -> java -> config -> PlayerEnvConfig main -> com.mypackagename -> etc… release -> java -> config -> PlayerEnvConfig debug中的代码:package config; /** * Environment configuration for Release */ public final class PlayerEnvConfig { public static final boolean USE_REPORTING = true; public static final […]

Android Studio更新-Error:无法使用Gradle分发运行构建操作

我最近更新了android studio到最新版本,但随后出现了问题。 Gradle’MyApplication’项目刷新失败。 错误:无法使用Gradle分发’ https://services.gradle.org/distributions/gradle-2.2.1-all.zip ‘运行构建操作。 在StackOverflow中find了这个 然而,尝试一切都没有用 – 目前无法创建任何import的新项目。请善意的建议。 apply plugin: ‘com.android.application’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” defaultConfig { applicationId “com.sclick.myapplication” minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName “1.0” } task assemble{} buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:21.0.3’ […]

将字节码转换为dex时出错:原因:java.lang.RuntimeException:exception解析类–Android studio 2.0 beta 6

我用gradle更新到Android studio 2.0 Beta 6的最新版本: dependencies { classpath ‘com.android.tools.build:gradle:2.0.0-beta6’ } 该应用程序在模拟器和设备上运行完美,我测试了所有东西,它工作正常。 只有当我尝试生成签名APK时,我才会遇到很多错误, 我在依赖项中遇到了一些错误,当我排除了vector drawable,vector animate drawable和Support-v4库时,所有这些错误都解决了 现在我没有任何依赖性错误。 现在我的app模块的gradle.build看起来像这样: apply plugin: ‘com.android.application’ android { configurations { //all*.exclude group: ‘com.android.support’, module: ‘support-v4’ all*.exclude module: ‘animated-vector-drawable’ all*.exclude module: ‘support-vector-drawable’ //all*.exclude module: ‘support-v4’ } repositories { maven { url “https://jitpack.io” } } compileSdkVersion 23 buildToolsVersion ‘23.0.2’ defaultConfig { applicationId […]

Android Studio gradle无法编译指定的版本

我已经开发了这个小项目好几天但是今天突然间,Android Studio开始给我这个错误 Error:Execution failed for task ‘:app:processDebugManifest’. > Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 14 declared in library com.android.support:support-v4:21.0.0-rc1 我明白这是因为它正在尝试编译Android-L库。 我希望它编译的版本是旧版本,但它不会。 无论我输入哪个版本,它都会一直给我上述错误。 这是依赖项。 dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:20.+’ compile ‘com.android.support:support-v4:20.+’ } UPDATE 我刚刚安装了Android Studio Beta并将我的依赖项更改为下面的Eugen建议。 但是,无论我指定哪个版本的appcompat支持版本,同步项目都会产生相同的错误。 它每次同步时都会出现此错误 uses-sdk:minSdkVersion 14 cannot be smaller than version L declared […]

根据buildType使用gradle覆盖资源

我想用gradle覆盖res / strings.xml中的一些字符串。 我知道, 因为Android Gradle Plugin 0.7。+ theres可能有一个变体特定的源文件夹。 但我的应用程序有很多口味,我不想添加额外的变体特定文件夹。 更新2014-01-17 我想要的详细信息: 我的资源中有一些variables只依赖于buildType(例如“release”)。 首先我认为我的SOLUTION_1 (在资源合并后覆盖数据)很好,因为如果我必须更改这些variables,我只需要在build.config中更改它们(只有一个地方)。 但正如Scott Barta在下面的评论中所写,有一些很好的理由说明为什么这个解决方案不是一个好主意。 所以我尝试了另一个解决方案SOLUTION_2 (只是合并正确的资源)基于shakalaca的这个GitHub项目 。 我认为这种方式更优雅,我仍然有一个优势就是在一个地方改变variables! SOLUTION_1(在资源合并后覆盖数据): 我在AS 0.4.2中做了什么: 在build.gradle我尝试将字符串“Hello World”覆盖为“OVERRIDE”( 根据我在这篇文章中的回答 ): android.applicationVariants.all{ variant -> // override data in resource after merge task variant.processResources.doLast { overrideDataInResources(variant) } } def overrideDataInResources(buildVariant){ copy { // *** SET COPY PATHS *** try […]

多个dex文件定义Lcom / google / firebase / FirebaseException

我遇到了Firebase集成的问题。 首先,我已将规则添加到根级build.gradle文件中: buildscript { repositories { maven { url “http://dl.bintray.com/populov/maven” } jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.1.2’ classpath ‘com.google.gms:google-services:3.0.0’ } } allprojects { repositories { maven { url “http://dl.bintray.com/populov/maven” } jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 和模块Gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 24 buildToolsVersion “24” defaultConfig { applicationId “com.example.app” minSdkVersion […]

错误:任务’:app:buildInfo Debug Loader’的执行失败

我几天前更新到Android Studio 2.0并且一切正常,但今天当我尝试编译项目时,我在Logcat收到以下错误: 错误:任务’:app:buildInfoDebugLoader’的执行失败。 执行过去的迭代备份时出现exception:Source \ app \ build \ intermediates \ builds \ debug \ 184802777347678 \ classes.dex和destination \ app \ build \ intermediates \ builds \ debug \ 184802777347678 \ classes.dex必须不同 错误告诉我相同的.dex必须是不同的,所以我很困惑。 我该怎么解决?

Android Studio 3.0:在gradle文件中找不到buildToolsVersion

我最近安装了新的稳定版Android Studio(v3.0)。 然后创建了一个新项目,没有任何问题。 但是看到app-level build.gradle文件中没有buildToolsVersion字段。 甚至我搜索了所有项目文件( Ctrl Shift F ),但没有find任何东西! 这是什么意思? 如何确定应用模块中Build Tools的版本? build.gradle(项目): // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.0’ // NOTE: Do not place your application dependencies here; they belong // in the individual module […]

Gradle 14.4无法构建 – 未findGradle DSL方法’packageName()’

我正在使用productFlavors并尝试根据风格更改packageName: productFlavors { flavor1 { packageName “com.mypackagename.one” } flavor2 { packageName “com.mypackagename.two” } } 这工作正常,直到我更新到Gradle 0.14.4,现在它失败并显示以下消息: Error:(21, 0) Gradle DSL method not found: ‘packageName()’ Possible causes: The project ‘MyProject’ may be using a version of Gradle that does not contain the method. Open Gradle wrapper file The build file may be missing a Gradle plugin. […]

如何将Google Play服务修订与安装版本相匹配?

Android SDK Manager今天早上通知我有一个新的Google Play Services版本要下载:版本18.那么如何在build.gradle文件中find相应的长版本号呢? 我的所有测试设备都运行5.0.84版本,所以我尝试更新 compile ‘com.google.android.gms:play-services:4.4.52’ 至 compile ‘com.google.android.gms:play-services:5.0.84′ 但是这导致了一个错误: Gradle’MyApp’项目刷新失败:找不到com.google.android.gms:play-services:5.0.84。 要求: {我的应用} Gradle设置 我正在运行Android Studio 0.5.2并为API19构建(我尚未升级到Android L / API20):也许这就是问题所在? 但一般来说, 如何将SDK Manager(例如18)中显示的修订号与build.gradle的版本代码(例如5.0.84)相匹配? 这是我的完整build.gradle,以防它有帮助: apply plugin: ‘android’ android { compileSdkVersion 19 buildToolsVersion “19.1.0” defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 1 versionName “1.0” } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’ […]