使用 gradle 构建 android 项目
Posted
技术标签:
【中文标题】使用 gradle 构建 android 项目【英文标题】:Building android project with gradle 【发布时间】:2012-08-01 06:01:40 【问题描述】:我正在尝试使用 gradle 构建工具构建一个简单的 android 应用程序。但我收到这样的错误
没有方法签名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() 适用于参数类型:(java.lang.String) 值:[org.gradle.api.plugins :gradle-android-plugin:1.2.0-SNAPSHOT] 可能的解决方案:模块(java.lang.Object)
这里是 build.gradle 的简单配置
buildscript
repositories
mavenCentral()
dependencies
compile 'org.gradle.api.plugins:gradle-android-plugin:1.2.0-SNAPSHOT'
apply plugin: 'android'
repositories
mavenCentral()
processResource
expand (project.properties)
task configureDebug <<
jar.classifier = "debug"
task configureRelease <<
proguard.enabled = true
【问题讨论】:
【参考方案1】:在应用插件时,您想告诉您构建脚本以在其类路径中使用它。编译不需要它,因此只需将配置compile
更改为classpath
。更多信息请参阅 Gradle 用户指南中的 51.5.1. Using your plugin in another project。
buildscript
repositories
mavenCentral()
dependencies
classpath 'org.gradle.api.plugins:gradle-android-plugin:1.2.0-SNAPSHOT'
编辑: 目前该插件不支持 Android SDK 的 r20。如需更多信息,请参阅issue。
【讨论】:
我将编译更改为类路径,但我仍然在构建时遇到错误。及其指向。应用插件:'android'失败:构建失败并出现异常。 *其中:构建文件'/home/user/workspace/ImageSdcard/build.gradle'行:16 *出了什么问题:评估根项目'ProjectName'时出现问题。 > 断言 toolsDir.exists() | | |假 /home/user/android-sdk-linux /tools 请在命令行上使用-s
标志运行它并发布堆栈跟踪。
我尝试运行 gradle -s build 并得到以下异常,这是日志。这是链接上的日志error.log
在我看来,好像您没有在 local.properties
中正确设置您的 sdk.dir
。您是否打算在该路径中留出空间?如果是,目录/home/user/android-sdk-linux /tools
是否存在?
我已经将 local.properties 设置为 sdk.dir=/home/user/android-sdk-linux 并且仍然有同样的错误。请问这个插件是否完全支持android r20 sdk?【参考方案2】:
确保您在 android studio 层次结构中的应用程序 build.gradle "YourProjectName->yourprojectname->build.gradle" 上编写依赖块。
【讨论】:
【参考方案3】:使用android gradle工具
repositories
mavenCentral()
dependencies
classpath 'com.android.tools.build:gradle:0.4'
【讨论】:
以上是关于使用 gradle 构建 android 项目的主要内容,如果未能解决你的问题,请参考以下文章
在 gradle android library kotlin 项目中禁用 META-INF/* 生成
如何使用 Android Studio 和 gradle 构建一个 android 库?
Android Gradle 插件Gradle 构建工具简介 ② ( Android 项目构建打包流程 | 构建工具发展 -> 手动配置 -> Ant -> Maven -> Gradle )