Articles of gradle

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

我有一个使用Android Studio 0.8.1构build的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: […]

Android Studio 3.0 Beta 1:无法parsing:com.android.support:multidex:1.0.2

从Android Studio 3.0(Canary 5)迁移到Android Studio 3.0(Beta 1)后,移动到最新的gradle,即'com.android.tools.build:gradle:3.0.0-beta1' 当我尝试进行同步时,出现下面的错误。 Failed to resolve: com.android.support:multidex:1.0.2 Failed to resolve: com.android.support:multidex-instrumentation:1.0.2 我检查Android Studio 3.0 Canary 9 – 无法解决包 ,它不能解决我的问题,因为我已经有了这个 maven { url 'https://maven.google.com' } 我很惊讶它甚至要求multidex 1.0.2,因为我只有在我的build.gradle compile 'com.android.support:multidex:1.0.1' 我检查使用./gradlew app:dependencies | grep multidex ./gradlew app:dependencies | grep multidex ,它显示了下面的错误(跨越各种口味等) +— com.android.support:multidex-instrumentation:1.0.2 FAILED +— com.android.support:multidex:1.0.1 +— com.android.support:multidex:1.0.2 FAILED +— com.android.support:multidex:1.0.1 -> […]

根据buildType使用gradle覆盖资源

我想重写res / strings.xml中的一些string与gradle。 我知道, 因为Android的Gradle插件0.7。+ theres的可能性有一个变体特定的源文件夹。 但我的应用程序有很多味道,我不想额外添加变体特定的文件夹。 更新2014-01-17 我想要的细节: 我的资源中有一些variables只依赖于buildType(例如“release”)。 首先,我认为我的SOLUTION_1 (覆盖资源合并后的数据)是很好的,因为如果我必须改变这些variables,我只需要在build.config(只是一个地方)中改变它们。 但正如Scott Barta在下面的评论中所写的那样,这个解决scheme并不是一个好主意。 所以我尝试了另一个解决schemeSOLUTION_2 (只是合并正确的资源)基于这个shakalaca GitHub项目 。 我认为这种方式更优雅,我仍然有优势,只是在一个地方改变variables! SOLUTION_1(覆盖资源合并后的数据): 我在AS 0.4.2中做了什么: 在build.gradle我尝试重写string“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 { from("${buildDir}/res/all/${buildVariant.dirName}") […]

运行react-native run-android时出错

A problem occurred configuring project ':app'. > Could not resolve all dependencies for configuration ':app:_debugApk'. > A problem occurred configuring project ':react-native-fbsdk'. > Could not resolve all dependencies for configuration ':react-native-fbsdk:_debugPublishCopy'. > Could not find com.android.support:appcompat-v7:27.0.1. Searched in the following locations: file:/home/ubuntu/Android/Sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.pom file:/home/ubuntu/Android/Sdk/extras/android/m2repository/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.jar file:/home/ubuntu/git/mstore-pro/android/sdk-manager/com/android/support/appcompat-v7/27.0.1/appcompat-v7-27.0.1.jar Required by: beostore:react-native-fbsdk:unspecified > Could not find com.android.support:appcompat-v7:27.0.1. Searched in the […]

Robolectricunit testing在Multidex之后失败

所以我最近把我的robolectric 3.0升级版本与我们的主stream版本合并在一起,后者在我们的应用程序中增加了对multidex的支持。 不幸的是,这有不幸的副作用,导致我们的testing失败/不运行 – 他们只是在第一次失败的尝试安装MultiDex后停下来,这个堆栈跟踪: java.lang.RuntimeException: java.lang.RuntimeException: Multi dex installation failed (/Users/me/Data/Projects/my-android/myapp/. (Is a directory)). at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:257) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:194) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at […]

Gradle同步失败:“com.android.build.gradle.BasePlugin”没有实现Plugin接口

环境:Android Studio 2.1 项目:Android SDK + Cordova Android Studio在Gradle Sync期间抛出以下错误: Gradle同步失败:“com.android.build.gradle.BasePlugin”没有实现Plugin接口

在com.android.build.gradle.internal.api.ApplicationVariantImpl找不到属性'processManifest'

我目前正在尝试将Android Studio更新到1.0.0-RC。 这似乎需要gradle Android插件1.0.0-RC1。 更新之后,我开始出现以下错误: `Could not find property 'processManifest' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@b9da89c.` 通过一些挖掘,似乎processManifest是在0.14.3版本中被删除的不推荐使用的属性之一。 任何想法是什么新的属性名称? 相同的用户指南还没有更新的新版本,所以我找不到任何文件。 编辑:这是需要属性的代码。 我使用它来为清单注入一些构build时间值: applicationVariants.all { variant -> variant.processManifest << { def manifestOutFile = variant.processManifest.manifestOutputFile def newFileContents = manifestOutFile.getText('UTF-8') .replace("{GOOGLE_MAPS_KEY}", variant.buildType.ext.google_maps_key) manifestOutFile.write(newFileContents, 'UTF-8') } }

在Wear和Android应用程序之间共享课程的最佳做法是什么?

我正在使用我的Android Phone应用程序序列化的类,并在我的Android Wear应用程序中反序列化。 他们都在同一个Android Studio项目,并作为一个部署。 我怎样才能在两人之间分享class级,而不必在每个软件包中都有class级副本? 现在我复制/粘贴它,但有什么办法让我把它包含在两个应用程序? 目录结构是: ./ mobile/ …src/etc wear/ …src/etc 我如何处理普通课程?

Gradle无法通过公司代理连接到maven repo – 需要通过Sencha / Cordova进行configuration

我正在尝试使用Cordova为Android构build一个Sencha Touch应用程序。 但是,在gradle构build开始之后,当尝试连接到maven仓库时出现连接错误: [INF] [shellscript] Running: C:\xxx\gradlew cdvBuildDebug -b C:\xxx\application\cordova\platforms\android\build.gradle -Dorg.gradle.daemon=true [INF] [shellscript] [INF] [shellscript] FAILURE: Build failed with an exception. [INF] [shellscript] [INF] [shellscript] * What went wrong: [INF] [shellscript] A problem occurred configuring root project '''android'''. [INF] [shellscript] > Could not resolve all dependencies for configuration ''':classpath'''. [INF] [shellscript] > Could not resolve […]

Gradle 2.3.0-alpha1不能工作数据绑定

今天更新到Android Studo 2.3 Canary后出现问题。 构build完成没有错误,但是当我运行应用程序时,gradle控制台不断显示: 找不到android.databinding.annotationprocessor.ProcessDataBinding 这是我的build.gradle // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle 2.3.0-alpha1' classpath 'com.google.gms:google-services:3.0.0' classpath 'com.android.databinding:dataBinder:1.0-rc1' classpath 'me.tatarka:gradle-retrolambda:3.3.1' classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // NOTE: Do not place your application dependencies here; they belong // […]