Articles of gradle

无法使用Android Studio 1.2和Gradle 1.2.2加载类OutputFileTask

升级到Android Studio 1.2后,尝试同步项目时出现以下错误 错误:无法加载类’com.android.build.gradle.internal.tasks.OutputFileTask’。 此意外错误的可能原因包括: Gradle的依赖性缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络) Gradle构建过程(守护程序)的状态可能已损坏。 停止所有Gradle守护进程可以解决此问题。 停止Gradle构建过程(需要重启) 在损坏的Gradle进程的情况下,您还可以尝试关闭IDE,然后终止所有Java进程。 这是我的gradle文件 apply plugin: ‘com.android.library’ apply plugin: ‘maven’ apply plugin: ‘maven-publish’ android { compileSdkVersion 21 buildToolsVersion “21.1.2” repositories { mavenCentral() } defaultConfig { minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName “1.0” } buildTypes { release { minifyEnabled false consumerProguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } lintOptions { abortOnError […]

创建一个依赖于多个AAR的AAR

我正在构建一个可以在其他应用程序中使用的SDK。 我的项目结构如下: ProjectFolder | +–AndroidLibs | | | +–UI (android library – AAR) | | | +–Protocol (android library – AAR) | | | +–infra (android library – AAR) | +–SDK(depends on UI, Protocol and Infra) | +–APP(depends on SDK) 如您所见,我们有3个不同的库,每个库都是我们系统中的模块(infra,ui和protocol)。 他们每个人都在创建一个AAR。 我们的SDK是一个包装器,对较低层有一些API调用。 我们想要创建一个依赖于所有其他AAR的AAR,但是出于某些原因,当我们尝试运行它时,它说他找不到某些类的源代码。 我发现了一些与此问题相关的问题,但它们没有奏效。 也尝试使用transitive依赖,但底线是相同的 – 找不到源代码。 android-studio-how-to-package-one-aar-from-multi-library-projects :一个答案就是没有解决方案(Google员工)。 create-an-aar-with-multiple-aars-jars :使用transitive依赖。 创建Mojo以创建具有所有“aar”依赖关系的AAR 我们还能做些什么吗?

Gradle挂起执行任务:[:android:generateDebugSources

自从我的Mac OS X更新到El Capitan(以及安卓工作室从1.5.1到2.x使用所有工具和sdks)我在Android Studio中遇到了我的libgdx–robovm游戏问题。 当我在做Gradle Sync时,它总是挂起: 执行任务:[:android:generateDebugSources,:android:generateDebugAndroidTestSources,:android:mockableAndroidJar,:android:prepareDebugUnitTestDependencies,:android-full:generateDebugSources,:android-full:generateDebugAndroidTestSources,:android-full:mockableAndroidJar,:android-full: prepareDebugUnitTestDependencies] 总是。 悬挂我的意思是永远。 我见过很少有同样问题的主题,但我找不到任何解决方案,我真的很沮丧。 我试过了: 1)确保我安装了zlib(s /usr/include/zlib.h), 2)在Global Gradle设置中我尝试打开“离线工作”,但结果是一样的, 3)清除robovm和gradle缓存, 4)重启Android Studio, 5)将Android Studio更新到最新的稳定版本, 6)我已经尝试过最新的gradle,但它只会引发新的问题,最终在摆脱它们之后我得到了同样的观点(悬挂), 7)删除.gradle目录, 8)删除构建目录的内容, 9)清洁和重建, 10)无效和重新启动 – 重新启动后它没有挂起,但任何操作(清理,重建,同步)都会再次挂起, 11)尝试过较旧的Android Studio(1.5.1), 12)尝试了不同的gradle插件版本:1.2.3,1.5.0,2.0 + 13)尝试了不同的android构建工具(22.0.1和23.xx) 14)直接从控制台编译(使用-d获取更多日志): 最后几行: 11:17:41.891 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry]将模型元素’tasks.tasks’转换为状态GraphClosed。 11:17:41.891 [INFO] [org.gradle.execution.TaskNameResolvingBuildConfigurationAction ] 从项目中选择的主要任务’任务’:11:17:41.893 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskGraphExecuter]时间: 创建DAG耗时0.002秒11:17:41.894 [INFO] [org.gradle.BuildLogger]评估所有项目。 配置> 7/7项目 (永远……) 编辑: 可能导致这种冻结的问题是我有2个子项目用于ios(robovm),当我删除其中一个时,它最终工作了。 这只是ios的一个问题,因为android […]

Gradle无法用java 1.8编译

我已经开始对我的项目有问题了。 每当我将build.gradle文件中的源和目标function设置为java版本1_8时,我的项目就无法编译。 inheritance人build.gradle代码 buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:1.5.0’ } } apply plugin: ‘com.android.application’ repositories { jcenter() } android { compileSdkVersion 22 buildToolsVersion “23.0.1” defaultConfig { applicationId “xxxx” minSdkVersion 22 targetSdkVersion 22 versionCode 1 versionName “1.0” } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildTypes { release { minifyEnabled false proguardFiles […]

如何使用多个res.srcDirs并使用gradle覆盖一些资源

我想基于不同的productFlavor构建我的应用程序的不同版本,但需要一定程度的灵活性,这是我无法实现的。 这是我的文件夹结构: +src +main +java +res +base +java +res +custom1 +java +res +custom2 +res 公共代码在main (服务)上,基础ui在base (活动)上。 然后,定义新UI的应用程序的自定义版本在custom1 (新活动)上。 这个运行正常。 但我需要另一个版本的应用程序( custom2 )使用基础 ui,但更改一些res(图标,字符串或颜色)。 我在build.gradle文件中尝试的是: android{ … productFlavors { base { … } custom1 { … } custom2 { … } } sourceSets{ custom2{ java.srcDirs = [‘src/base/java’] res.srcDirs = [‘src/custom2/res’, ‘src/base/res’] } } } 要指定custom2将使用base的源代码和资源以及custom2的资源。 […]

android studio BaseGameUtils

我正在尝试实施Google Play游戏服务,我需要将BaseGameUtils作为我项目中的库。 在谷歌教程之后,我找不到将其包含在我已经在android studio中的项目中的方法。 在Android Studio中手动导入… 我应该如何在已经存在的项目中导入BaseGameUtils? 什么是最佳做法? 我应该在模块的libs文件夹中复制整个BaseGameUtils吗? 或者我应该在项目文件夹中复制BaseGameUtils? \Project |–\module |–|–\libs |–|–|–android-support-v4.jar |–|–|–… |–|–|–\BaseGameUtils |–|–|–|–… |–|–\src |–|–|–… 要么 \Project |–\module |–|–\libs |–|–|–android-support-v4.jar |–|–|–… |–|–\src |–|–|–… |–\libraries |–|–\BaseGameUtils 除了gradle文件(在BaseGameUtils中),我应该在其他任何地方提到BaseGameUtils是一个库吗?

使用flavor尺寸时设置Android applicationId的正确方法是什么?

我在我的项目中使用了flavor维度,并且我一直在使用for循环将applicationId设置为我生成的flavor: flavorDimensions “appname”, “brand” productFlavors { user { dimension “appname” } installer { dimension “appname” } branda { dimension “brand” } brandb { dimension “brand” } brandc { dimension “brand” } brandd { dimension “brand” } } 我过滤那些我现在不支持的: variantFilter { variant -> def names = variant.flavors*.name if (names.contains(“installer”) && (names.contains(“brandc”) || names.contains(“brancd”)) ) { variant.ignore […]

Android Studio 0.3.1,appcompat-v7和android库项目总是生成IllegalStateException

我正在开发一个使用库appcompat v7和support-v4的应用程序。 该应用程序正常工作,其主题源自Theme.AppCompat 。 当我尝试将任何模块(android库项目)添加到主项目时出现问题:我总是得到IllegalStateException 。 目前项目库完全是空的:没有Java类或XML资源,只有AndroidManifest文件: MyLibrary AndroidManifest.xml 我还尝试将主题Theme.AppCompat添加到MyLibrary的Application部分: […] 但结果始终是相同的exception: 10-28 12:22:36.761 1770-1770/? E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.akhela.tekpea/com.akhela.tekpea.ui.OverviewActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) […]

Gradle:在顶部或底部“应用插件”

具有相同的效果在Android Studio项目的build.gradle文件的开头或结尾添加“apply plugin”吗? 例如,要添加“com.google.gms.google-services”插件,Firebase官方文档建议在最后添加,但我已经看到其他代码在开头添加它。 我知道这个问题似乎无关紧要,但我正在为Android Studio开发一个插件以管理依赖关系并且有这个疑问。 提前致谢

配置后无法创建变体’android-lint’

我正在将我的项目的Gradle插件从2.1.2更新到3.1.0但是gradle在构建时开始抛出错误: 在配置’:app:debugRuntimeElements’之后,无法创建变体’android-lint’ 项目级别gradle: // Top-level build file buildscript { repositories { jcenter() mavenCentral() maven { url ‘https://maven.fabric.io/public’ } maven { url ‘https://maven.google.com/’ name ‘Google’ } google() } dependencies { classpath ‘com.android.tools.build:gradle:3.1.1’ classpath ‘org.ajoberstar:gradle-git:0.6.3’ //noinspection GradleDynamicVersion classpath ‘io.fabric.tools:gradle:1.+’ classpath ‘me.tatarka:gradle-retrolambda:3.2.5’ classpath ‘com.google.gms:google-services:3.0.0’ } } // Used to disable preDex, will speed up clean build but slow […]