使用 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 项目的主要内容,如果未能解决你的问题,请参考以下文章

Android 加速Gradle构建项目

使用 PHP 构建 gradle Android 项目

在 gradle android library kotlin 项目中禁用 META-INF/* 生成

如何使用 Android Studio 和 gradle 构建一个 android 库?

Gradle构建工具与Android对应关系

Android Gradle 插件Gradle 构建工具简介 ② ( Android 项目构建打包流程 | 构建工具发展 -> 手动配置 -> Ant -> Maven -> Gradle )