Articles of gradle

Android studio – 无法完成gradle执行 – 打开zip文件时出错

我是android开发和android studio IDE的新手。 我从bitbucket检出了一个项目,当我尝试编译它时,我收到以下错误: 无法完成Gradle执行 原因:打开zip文件时出错。 我的gradle-wrapper.properties如下: distributionBase = GRADLE_USER_HOME distributionPath =包装/ dists中 zipStoreBase = GRADLE_USER_HOME zipStorePath =包装/ dists中 distributionUrl = HTTP \://services.gradle.org/distributions/gradle-1.11-all.zip 我无法从此获取太多信息,但完整日志指出: 2014-05-23 14:06:28,950 [32077] WARN – nal.AbstractExternalSystemTask – 原因:打开zip文件时出错com.intellij.openapi.externalSystem.model.ExternalSystemException:原因:在org.jetbrains打开zip文件时出错。在org.jetbrains.plugins.gradle的org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116)上的plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:206)。 com.intellij.openapi.externalSystem.service.remote上的com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl $ 1.produce(RemoteExternalSystemProjectResolverImpl.java:41)中的service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64) .RemoteExternalSystemProjectResolverImpl $ 1.produce(RemoteExternalSystemProjectResolverImpl.java:37)at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.jav) a:59)com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37)at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java: 49)at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48)at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137)at com .intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123)位于com.intellij.openapi的com.intellij.openapi.externalSystem.util.ExternalSystemUtil $ 3.execute(ExternalSystemUtil.java:467)。 externalSystem.util.ExternalSystemUtil $ 4 $ 2.run(ExternalSystemUtil.java:546)at com.intellij.openapi.progress.impl.ProgressManagerImpl $ […]

无法在com.android.build.gradle.internal.api.ApplicationVariantImpl上find属性’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版本中删除的已弃用属性之一。 知道新的属性名称是什么? 相同的用户指南尚未针对新版本进行更新,因此我找不到任何相关文档。 编辑:这是需要该属性的代码。 我用它将一些构建时值注入清单: 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') } }

如何使用gradle管理第三方deps的不同支持库版本?

我有一堆第三方库,我包含在我的基础应用程序中。 我无法控制那些第三方模块包含的支持库。 这使得在我的应用程序中很难拥有相同版本的android支持库。 当我可以从每个依赖项中排除某些库时,我知道使用gradle: compile(‘com.test:lib1:1.0.0’) { exclude group: ‘com.android.support’ } 然而,有大量的支持库,并将它们全部排除在我的第三方库中,似乎有点过分。 有没有更好的办法? 阅读这篇博文: https : //www.devsbedevin.com/android-understanding-gradle-dependencies-and-resolving-conflicts/ 它表明: configurations.all { resolutionStrategy { preferProjectModules() } } 但是当使用它时,我仍然在我的gradle文件中的Android Studio中收到警告,检测到有多个版本的支持库。 如果我的依赖项依赖于支持库的不同版本,我该怎么办? 在上面的任何一种情况下,我都会强迫第三方库使用它们未构建的特定版本的支持库。 我应该使用哪个版本? 最新的支持库? Min支持所有第三方依赖的库? 这是一个最小的gradle文件示例,显示了第三方依赖项,每个依赖项依赖于它们自己的支持库版本。 android { compileSdkVersion 26 buildToolsVersion ‘26.0.2’ defaultConfig { applicationId “com.example.app” minSdkVersion 17 targetSdkVersion 25 } } configurations.all { resolutionStrategy { preferProjectModules() } } […]

Android Gradle构建失败:找不到com.google.android:support-v4:r18

编辑: 这个问题似乎以某种方式消失了,这可能是由于新的Gradle构建系统变得更加成熟。 我有两个独立的Android项目: 第一个项目是使用Gradle的‘android-library’插件的Android库 ,它取决于support-library-v4:r18 。 来自build.gradle中的 依赖项的片段 : compile ‘com.android.support:support-v4:18.0.0′ 支持库是从Android SDK Manager安装的Android Support Repository中获取的,如此处所述。 然后通过运行: gradle uploadArchives构建该项目并将其发布到maven本地存储库 我validation了,然后库.aar随后在本地maven存储库下可用。 第二个项目是一个Android应用程序,使用Gradle的‘android’插件,它引用第一个项目生成的库的maven依赖 。 这是build.gradle的一个片段: repositories { mavenLocal() mavenCentral() } dependencies { compile ‘com.android.support:support-v4:18.0.0’ compile ‘com.example:cool-lib:1.0.0-SNAPSHOT’ } 注意:这两个项目完全分开。 这意味着,它们不是同一根项目的子项目。 当我尝试通过运行: gradle assemble来构建第二个项目时 我收到以下错误: Could not find com.google.android:support-v4:r18. Required by: com.example:app-project:unspecified > com.example:cool-lib:1.0.0-SNAPSHOT 我在我的本地maven repo文件夹下检查了cool-lib的.pom文件,我发现它有以下依赖项: com.android.support support-v4 18.0.0 […]

Gradle sync失败:’com.android.build.gradle.BasePlugin’没有实现Plugin接口

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

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

我正在使用我在Android手机应用程序中序列化的课程,并在我的Android Wear应用程序中反序列化。 它们都在同一个Android Studio项目中,并作为一个部署。 如何在每个包中没有类的副本的情况下共享两者之间的类? 现在我正在复制/粘贴它,但有没有办法让我将它包含在两个应用程序中? 目录结构是: ./ mobile/ …src/etc wear/ …src/etc 我如何处理常见的课程?

Android:Skip Gradle“testClasses”任务用于依赖项目

我已按照本指南在Android Studio v1.4中为我的主要Android模块创建了一个JUnit测试文件(我们称之为“module-a”)。 我的“module-a”依赖于作为.aar文件提供的外部库,我必须创建一个专用模块。 此依赖项会导致错误: 右键单击测试Java文件并点击“运行MyTestName”时,它会因此错误而失败 Error:Gradle: FAILURE: Build failed with an exception. * What went wrong: Task ‘testClasses’ not found in project ‘:module-b’. 删除对module-b的依赖性可以解决问题。 模块的摘录 – build.gradle: compile project(‘:module-b’) module-b build.gradle: configurations.create(“default”) artifacts.add(“default”, file(‘library-b.aar’)) 我应该如何配置Gradle,以便它不会尝试在“module-b”上运行testClasses任务? (这应该解决我的问题)

Android Studio:将项目导入现有项目

我有一个Eclipse项目,我以某种方式设法在Android Studio中工作了一段时间。 它使用TouchDB库/项目,我现在想升级到他们最新的产品couchbase-lite-android,看起来它已经为带有gradle文件的Android Studio打造。 但是我不知道如何继续将这个项目导入我现有的项目中。 文件 – >导入项目为我提供了3个选项,从现有源创建项目,从外部模型导入(mavern),从外部模型导入(gradle) 如果我选择gradle它构建couchdbase-lite-android然后将其打开到它自己的Android Studio窗口中,它肯定不会导入到我当前的项目中。 有任何想法吗…

Android – 根据构建types更改flavor版本名称

我想更改应用程序风格的版本名称,但仅限于它是调试版本。 (例如,调试版本将具有类似1.0.1 D(DEBUG)555或1.0.1 P(DEBUG)555的版本,但是我希望版本构建仅具有1.0.1版本)我如何实现这一目标? 基本上我有这些构建types: buildTypes { debug { versionNameSuffix ” (DEBUG) ” + mBuild } release { runProguard true proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), file(‘proguard-project.txt’) signingConfig signingConfigs.release } } 和这些口味(针对不同的api环境): productFlavors { dev { versionName = android.defaultConfig.versionName + ” D” } prod { versionName = android.defaultConfig.versionName + ” P” } } 有没有什么方法可以在没有产品风格版本名称更改的情况下进行发布版本? 我试图通过动态设置版本名称 buildTypes.each { buildType -> […]

Android Studio和Gradle – 构建失败

我正在建立一个小型图书馆项目以及一个示例项目来说明其用途。 我无法在Android Studio中运行该示例。 我从头开始创建项目。 我对Eclipse很有经验,但这是我第一次尝试使用Android Studio和Gradle。 给出的错误: Gradle:任务’:demo:dexDebug’的执行失败。 运行C:\ DevTools \ Android \ android-studio \ sdk \ build-tools \ android-4.2.2 \ dx.bat失败。 见输出 我有以下文件夹结构: – demo – build – libs – android-support-v4.jar – src – main – java – res – build.gradle – library – build – libs – android-support-v4.jar – src – main – […]