Articles of gradle

更新到Android studio 2.3 Canary 3后,Gradle构建失败

我最近将我的项目的android studio版本从2.3 Canary 2更新到2.3 Canary 3.从那时起,gradle构建每次都会失败并出现此错误: 错误:无法find方法’org.gradle.api.tasks.Sync.getInputs()Lorg / gradle / api / internal / TaskInputsInternal;’。 此意外错误的可能原因包括: Gradle的依赖性缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络) Gradle构建过程(守护程序)的状态可能已损坏。 停止所有Gradle守护进程可以解决此问题。 停止Gradle构建过程(需要重启) 您的项目可能正在使用第三方插件,该插件与项目中的其他插件或项目请求的Gradle版本不兼容。 在损坏的Gradle进程的情况下,您还可以尝试关闭IDE,然后终止所有Java进程。 我搜索过谷歌并没有find这样的解决方案,但那些相似的解决方案无效。 有谁知道如何修理它?

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 […]

使用Gradle在分离的dex文件中拆分外部库以解决Android Dalvik 64k方法的限制

有没有一种proper/easy方法来解决使用Gradle的64k方法限制? 我的意思是一些自定义Gradle任务使用pre-dexed jar来创建单独的dex文件,而不是单个classes.dex 。 谢谢 伊万 当前状态 目前,我正在努力使用GMS:它引入了20k方法来使用Google Analytics。 我使用Proguard去除不需要的东西,但仍然…… 72k方法和计数…… 我可以使用dx参数–multi-dex在两个文件中拆分classes.dex 。 我实现了手动编辑 sdk/build-tools/android-4.4W/dx 并编辑最后一行,如下所示: exec java $javaOpts -jar “$jarpath” –multi-dex “$@” 我的APK文件现在包含__classes.dex__ and __classes2.dex__ 。 我试图用几种方法动态加载第二个文件: Dexdex 链接 德克斯特链接 辅助dex gradle 链接 不幸的是还没有运气。 我真的希望一些Google / Facebook / Square大师可以提供合适的解决方案。

Android Studio Gradle项目同步失败

我收到错误:“Gradle项目同步失败。基本function(例如,eiditing)将无法正常工作。” 和错误日志: Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon at http://gradle.org/docs/1.10/userguide/gradle_daemon.html Please read below process output to find out more: ———————– Error occurred during initialization of VM […]

多个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 […]

Android:Jumbo Mode vs Multidex

我不完全确定将dex选项“jumbomode”设置为true与添加multidex支持之间的区别。 将jumbo模式设置为true或将multidex设置为true似乎可以解决下面的问题 AGPBI: {“kind”:”SIMPLE”,”text”:”UNEXPECTED TOP-LEVEL EXCEPTION:”,”position”:{},”original”:”UNEXPECTED TOP-LEVEL EXCEPTION:”} AGPBI: {“kind”:”SIMPLE”,”text”:”com.android.dex.DexIndexOverflowException: Cannot merge new index 65772 into a non-jumbo instruction!”,”position”:{},”original”:”com.android.dex.DexIndexOverflowException: Cannot merge new index 65772 into a non-jumbo instruction!”} AGPBI: {“kind”:”SIMPLE”,”text”:”\tat com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)”,”position”:{},”original”:”\tat com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)”} AGPBI: {“kind”:”SIMPLE”,”text”:”\tat com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)”,”position”:{},”original”:”\tat com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)”} AGPBI: {“kind”:”SIMPLE”,”text”:”\tat com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)”,”position”:{},”original”:”\tat com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)”} AGPBI: {“kind”:”SIMPLE”,”text”:”\tat com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)”,”position”:{},”original”:”\tat com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)”} AGPBI: {“kind”:”SIMPLE”,”text”:”\tat com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)”,”position”:{},”original”:”\tat com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)”} AGPBI: {“kind”:”SIMPLE”,”text”:”\tat com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)”,”position”:{},”original”:”\tat com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)”} …

使用applicationIdSuffix佩戴应用程序和自定义构建types

我有一个应用程序,我想添加Android Wear应用程序扩展。 主应用程序有三种构建types(调试,测试和发布)。 Beta版本有一个applicationIdSuffix ,它允许我在同一设备上并行安装Play-store版本和当前开发版本。 这一切都很好,直到我添加了磨损应用程序。 主app的build.gradle看起来像这样: apply plugin: ‘com.android.application’ android { … defaultConfig { … applicationId “com.example.mainApp” … } buildTypes { debug { applicationIdSuffix ‘.debug’ } beta { applicationIdSuffix ‘.beta’ } release { } } } dependencies { … wearApp project(‘:wear’) } Wear-App具有相同的构建types,具有相同的applicationIdSuffix值。 但是,当我构建beta应用程序时(通过调用gradle assembleBeta )构建过程构建:wear:assembleRelease而不是:wear:assembleBeta这就是为什么我在构建期间收到以下错误消息: FAILURE: Build failed with an exception. * What […]

为什么Android Gradle preDexDebug“源和目标必须不同”构建失败?

我有一个使用Android Studio 0.8.1构建的Android应用程序并面临此问题: Error:Execution failed for task ‘:app:preDexDebug’. > java.lang.IllegalArgumentException: Source C:\Users\mfedorov\AndroidStudioProjects\EPOS2\app\build\intermediates\pre-dexed\debug\mate-api-0.0.1-SNAPSHOT-0ef7e3259aeaf19202f545da97dc6b1ae2502c9a.jar and destination C:\Users\mfedorov.ALTIUS-PLUS\AndroidStudioProjects\EPOS2\app\build\intermediates\pre-dexed\debug\mate-api-0.0.1-SNAPSHOT-0ef7e3259aeaf19202f545da97dc6b1ae2502c9a.jar must be different 这是我的build.gradle文件内容(我更改的部分,其余部分是默认的) configurations.all { // check for updates every build resolutionStrategy.cacheChangingModulesFor 0, ‘seconds’ } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘org.apache.commons:commons-collections4:4.0’ compile ‘org.slf4j:slf4j-android:1.7.7’ compile ‘com.altius.logging:logging-utils:0.0.1-SNAPSHOT’ compile group: “com.altius.mate”, name: “mate-bluetooth”, version: “0.0.1-SNAPSHOT”, changing: true compile group: […]

Gradle构建不起作用:任务执行失败’:MyApp:compileDebug’

我正在尝试将项目迁移到Gradle,但每次运行命令时都会引发exception gradle build –stacktrace 我正在使用Gradle 1.6。 这是错误的堆栈跟踪: :MyApp:compileDebug FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:MyApp:compileDebug’. > Compilation failed; see the compiler error output for details. * Try: Run with –info or –debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task […]