Articles of gradle

在Android Gradle中,每个构建变体是否可以拥有自定义源文件?

我们的应用程序有免费和付费版本。 我们还制作品牌版本,这意味着应用程序在两个方面有所不同。 四个版本可能是: 该应用程序,耐克编辑。 自由 APP,耐克编辑。 支付 该应用程序,阿迪达斯编辑。 支付 该应用程序,阿迪达斯编辑。 自由 我现在的解决方案是拥有两种构建types,付费和免费: buildTypes { paid { packageNameSuffix “.paid” } free { packageNameSuffix “.free” } } 还有两种口味: productFlavors{ nike{ packageName “com.example.theapp.nike” } adidas{ packageName “com.example.theapp.adidas” } } 应用程序的每个免费版本都使我们成为内容提供者,内容提供者是特定的每个风味 – 构建types组合。 问题是我不知道在哪里放置基于构建变体的源文件。 放入/ src / nike或/ src / free的源文件将根据构建types或风格获取。 但是,依赖于构建变体(types和风格的组合)的源文件怎么样?

覆盖android gradle versionCode表单命令行

我有一个build.gradle文件在我的Android应用程序中使用此设置: android { … defaultConfig { applicationId “some.app.id” versionName ‘1.2’ versionCode 3 … } … } 我的AndroidManifest.xml 不包含versionCode,也不包含versionName。 现在我想在Jenkins上构建这个应用程序并将BUILD_NUMBER作为app的versionCode传递,以便每个构建都有更高的版本。 所以在工作中我有一个电话: ./gradlew -PversionCode=$BUILD_NUMBER clean build 当我使用“versionCode”重命名“app-release.apk”时,versionCode的值与从命令行传递的值相同: applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(“app-release.apk”, “MyApp_” + “_v” + versionName + “.” + versionCode + “.apk”)) } } 概要 所以我将默认值“versionCode”设置为3,但是在构建Jenkins时我想从命令行覆盖它。 问题 问题是在AndroidManifest内部构建.apk应用程序将versionCode设置为3而不是BUILD_NUMBER的值。 […]

如何在支持libs更新后构建APK时修复ProcessException?

我升级到支持 libs appcompat-v7和support-v4到22.1.1 (从22.0.0开始 ): compile ‘com.android.support:appcompat-v7:22.1.1’ compile ‘com.android.support:support-v4:22.1.1’ 现在我在构建APK时开始获取ProcessException : com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/usr/java/jdk1.8.0_31/bin/java” finished with non-zero exit value 2 jenkins的这些错误: FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring project ‘:app’. > Could not resolve all dependencies for configuration ‘:app:_stagingDebugCompile’. > Could not find com.android.support:appcompat-v7:22.1.1. Searched in […]

Android Robolectric Gradle – java.lang.OutOfMemoryError:PermGen空间

我有一个Android项目设置与robolectric测试,现在总共约2084个unit testing。 但是由于java.lang.OutOfMemoryError: PermGen space我一直在遇到添加更多测试的问题。 objc[11380]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. java.lang.OutOfMemoryError: PermGen space Exception in thread “Test worker” java.lang.OutOfMemoryError: PermGen space Exception in thread “Thread-0” java.lang.OutOfMemoryError: PermGen space :app:testDebug FAILED 通过strack trace,我得到以下内容 * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for […]

找不到Android Gradle build-info.xml

当我尝试使用InstantRun启动旧应用程序时,它说: 找不到模块应用程序的Gradle build-info.xml。 请确保您使用的是gradle插件“2.0.0-alpha4”或更高版本。 我怎么解决这个问题?

Gradle无法解决Android Studio中的依赖关系

我在Android Studio中导入了一个Phonegap项目,并将其作为基于Gradle的项目。 现在我正在尝试编译一些外部依赖项,我收到此错误: 错误:(72,13)无法解决:com.loopj.android:android-async-http:1.4.6在文件中显示 在Project Structure对话框中显示 我试图通过进入File-> ProjectStructure-> Dependencies并“自动”添加它们来添加这些依赖项。 Android Studio确实find了库,并将它们添加到我的build.gradle中,但我仍然得到相同的错误… 这是我的build.gradle文件的一部分(依赖项位于底部): import java.util.regex.Pattern apply plugin: ‘android’ buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:1.1.0+’ } } ext.multiarch=false android { sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs = [‘src’] res.srcDirs = [‘res’] assets.srcDirs = […]

错误:无法使用Gradle安装运行构建操作(gradle 2.4,android studio)

我刚刚更新Android Studio,我无法构建任何项目,甚至是新创建的项目。 我得到的错误是: 错误:无法使用Gradle分发’ https://services.gradle.org/distributions/ gradle-2.4 .zip’运行构建操作。 我该怎么办?

Gradle 3.0.0 alpha变体输出问题

我希望有一个不同的versionCode用于debug构建types而不是release版本types。 这曾经在Gradle Android插件v2.3.2(Gradle v3.3)中使用下面的配置工作,但现在在v3.0.0-alpha5(Gradle v4.1-milestone-1)中没有任何效果。 关于最新的Gradle插件中发生了哪些变化的想法使它忽略了variant.mergedFlavor.versionCode属性? buildTypes { debug { applicationIdSuffix “.debug” versionNameSuffix “-” + buildTime() android.applicationVariants.all { variant -> if (variant.buildType.name != buildTypes.debug.name) return variant.outputs.all { outputFileName = “${archivesBaseName}-${variant.name}-v${variant.versionName}-signed.apk” variant.mergedFlavor.versionCode = Integer.parseInt(buildTimeSmall()) } } } }

如何在IntelliJ 13中为Gradle Android项目创建Android测试模块?

我已经在IntelliJ 13中成功创建了一个Android项目,我想设置Android测试框架。 我使用新项目向导使用Gradle创建android项目。 当我添加新模块时,我只有“Gradle:Android Module”和“Gradle:Java Library”的选项,缺少“测试模块”选项。 如何生成Android测试模块? 我已阅读http://www.jetbrains.com/idea/webhelp/testing-android-applications.html但我永远找不到任何“测试”选项。 如果无法自动生成Android测试模块,那么如何使用Gradle Android项目配置和使用Android测试框架? 非常感谢您对示例或文档的链接。 详细信息: IntelliJ 13.1.3

gradle版本和gradle构建工具版本之间的关系

我是新手,有两个问题: gradle本身是一个构建工具,那么为什么在脚本中需要Android gradle工具com.android.tools.build:gradle:0.7.+ ? 安装的gradle版本(比如说1.9)和那个Android gradle工具的版本之间的关系是什么,比如classpath ‘com.android.tools.build:gradle:0.7.+’ 0.7。+ classpath ‘com.android.tools.build:gradle:0.7.+’ 。 如果我将后者的版本更改为0.8。+那么构建将失败’无法find插件AppPlugin’。