Articles of gradle

Android:testing运行失败:由于“java.lang.IncompatibleClassChangeError”导致testing运行失败

我有几个unit testing的项目。 当我尝试在Android Studio中执行testing或从terminal使用gradle clean connectedCheck ,出现以下错误: Test running failed: Instrumentation run failed due to 'java.lang.IncompatibleClassChangeError'它在Android 5.x设备上重现,但在4.x没有错误发生。 但是如果我尝试在Android Studio中运行单独的testing包,套件,类或某些testing,则testing进行得很顺利。 我不明白为什么。 我需要从terminal执行testing build.gradle文件: apply plugin: 'com.android.application' android { compileSdkVersion 18 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.xxx.yyy" minSdkVersion 9 targetSdkVersion 18 testApplicationId "com.xxx.zzz.tests" testInstrumentationRunner "android.test.InstrumentationTestRunner" } packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude […]

Android即时运行缓慢构build

我一直听到即时运行的讨论,就好像它处于一个很好的状态,但是我的团队和我经常遇到关于这个function的重大问题,并因此而降低了编码体验。 在即时运行之前,我们的干净版本是〜1分30秒,之后我们会得到〜25秒或偶尔的40秒的版本。 虽然即时运行似乎确实有时会将构build时间减less到6-12秒,而其他时间则会让我们进入我们已经看到的疯狂的长时间构build,只要13分钟,这在很大程度上抵消了渐进式编译的收益。 也似乎大部分时间,小小的变化仍然需要40秒。 有时候是6秒钟,但这很less见。 感觉很像即时运行降低了我们一贯高效工作的能力。 以下是我们的一些特定于应用的configuration: Android Studio 2.1.1,Android插件2.1 multiDexEnabled true dexOptions { preDexLibraries true javaMaxHeapSize "4g" maxProcessCount 4 incremental true dexInProcess true } org.gradle.daemon=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx6g -XX:MaxPermSize=512m 我们做错了什么,还是有人find工作? 编辑 :几个开发者似乎遇到这一点。 我在这里跟踪一个错误。 随意挑选它并添加到讨论中。

在使用Android Studio创build新项目时出现Gradle错误

我刚刚安装了谷歌IO 2013中引入的Google Android Studio,并按照适当的依赖关系创build新的Android项目。 但是在完成之后,我得到了一个popup式窗口,GoogleAndroidStudio下载Gradle来自动构build。 有错误下载Gradle,并想知道如何手动安装/configurationGradle,否则请更好地使用GAS的另一种方法。

使用Gradle在多个Android应用程序之间共享Android库

我有Android应用程序A和B.我想从每个提取重复代码到共享库L.我怎样才能使用Gradle做到这一点? 我曾经见过这个问题的一些排列,但是答案却很less。 最接近/最好的问题是这样的: 多个Android应用程序依赖于Android库与Gradle 第一个答案build议包含应用程序和库模块的父项目。 这种耦合是不受欢迎的,部分原因是A,B和L在他们自己的Git仓库中,也是因为它会涉及父项目和构build文件,这些文件难以放在源代码控制中(或者涉及手动复制其他项目)。 由于Android Studio在默认情况下喜欢单模块项目的父级构build,所以应该是一个简单的家族。 这真的好像是一个不相干的项目之间的不必要的耦合。 第二个答案涉及将AAR发布到回购库,并在每个项目中引用远程库。 如果我们有一个本地的Nexus存储库,那么我可以很好地使用这种方法,但似乎没有一个简单的方法来做到这一点,没有手动版本/命名和上传文件(这是不可持续的)。 我试图使用Sonatype gradle-release插件,但似乎是JAR(不是AAR)。 它看起来像是很多移动部件,相当于Android应用程序之间最基本的代码共享forms。 有没有人有更好的解决scheme?

无法将gdx-tools添加到libgdx gradle项目

我是新来的Gradle。 我正在尝试将gdx-tools添加到我的项目中: project(":desktop") { apply plugin: "java" dependencies { compile project(":core") compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion" } } 我打开我的桌面项目,文件夹“Gradle Dependecies”,并看到“gdx-tools-1.0.1.jar”。 当我试图打开它 – 什么都没有显示。 所以,当我尝试使用它(我想尝试打包图像到图集) – 我无法导入com.badlogic.gdx.tools … 我做错了什么?

Android:在proguard中重复类错误

当编译我的应用程序时,我得到以下错误(敏感的部分path编辑出来) Execution failed for task ':app:proguardDebug'. > java.io.IOException: Can't write [/projects/app/build/intermediates/classes-proguard/debug/classes.jar] (Can't read [/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.4/4216af16d38465bbab0f3dff8efa14204f7a399a/commons-codec-1.4.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [commons-codec-1.4.jar:org/apache/commons/codec/binary/Base64.class])) 这告诉我,编译器看到两个地方的应用程序试图使用commons.codec.binary.Base64.class作为依赖。 我再次检查并检查了我的库,但只有一个库(Amazon AWS)正在尝试使用它。 在这个错误之上,我得到了一些其他的警告,也为我提出了一个红旗: Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [commons-lang3-3.1.jar:META-INF/LICENSE.txt]) Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate zip entry [commons-lang3-3.1.jar:META-INF/NOTICE.txt]) Warning:can't write resource [META-INF/LICENSE.txt] (Duplicate zip entry [commons-codec-1.4.jar:META-INF/LICENSE.txt]) Warning:can't write resource [META-INF/NOTICE.txt] (Duplicate zip entry [commons-codec-1.4.jar:META-INF/NOTICE.txt]) 我没有明确地在我的应用程序中使用commons-codec-1.4或commons-lang3-3.1,以为我之前使用lang3删除它。 […]

在OSX的命令行上构buildAndroid项目:在根项目中找不到任务“assembleDebug”

我试图在OSX(Mavericks 10.9.5)命令行上使用这个方法构buildAndroid项目: http : //developer.android.com/tools/building/building-cmdline.html 。 这个方法解释了使用assembleDebug / assembleRelease来构build一个Android项目。 不幸的是,gradle不会创buildassembleDebug或者assembleRelease目标。 执行./gradlew assembleDebug返回: FAILURE: Build failed with an exception. * What went wrong: Task 'assembleDebug' not found in root project 'test'. * Try: Run gradlew tasks to get a list of available tasks. Run with –stacktrace option to get the stack trace. Run with –info or […]

Android中的Aviary SDK更新

所以我们已经在我们的项目中使用了Aviary SDK很长一段时间了,没有发生任何问题。 但是,当我们将Aviary版本更新到最新版本时,会发现一些奇怪的行为 – 当您首次在设备上安装新版本的Aviary应用程序时安装应用程序,该应用程序版本与旧版Aviary版本一起使用时,应用程序崩溃, FATAL EXCEPTION: IntentService[AviaryCdsService] java.lang.IllegalStateException: Missing required api key secret 第二次运行已安装的应用程序工作正常,所有function都正常工作。 如果设备以前没有安装应用程序,则不会发生崩溃,安装运行良好。 从com.aviary.android.feather.sdk:aviary-sdk:3.4.3.351到com.aviary.android.feather.sdk:aviary-sdk:3.6.3 有没有其他人有这样的问题,有没有办法避免这个崩溃?

Android Studio如何知道新的依赖版本?

Android Studio似乎知道何时有更新版本的依赖关系。 Maven仓库有所有的版本,所以它当然可以在那里检查,但是并不是所有的依赖项都这么做。 注意到它适用于com.google和com.android依赖项,但不适用于其他项目。 这是为什么? 可以configuration吗? 任何有关这方面的见解,赞赏。

在0.4.6升级后,Gradle Sync不会完成

在我将Android Studio升级到0.4.6之后,它似乎陷入了Gradle Sync的困境。 黄色的带子一直在“Gradle Project Synch in Progress”上面。 但是,没有任何迹象表明从底部的酒吧运行任何进程。 当我尝试运行我的应用程序时,出现在气球中的“Gradle Project Sync失败,请修复您的项目并再试一次”失败。 但是,没有更多的信息。 在升级到0.4.6之前,我正在成功完成这个项目。 而且由于0.4.5从0.4.5快速更新(在5天内),修复了一些与gradle相关的bug,我开始怀疑这是否是他们介绍的新东西。