使用 Android Gradle 插件在编译前运行任务

2023-12-11

我有一个非常简单的build.gradle文件包含以下内容:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.1'
    }
}

apply plugin: 'android'

android {
    buildToolsVersion "17.0.0"
    compileSdkVersion 17

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

task generateSources {
    doFirst {
        def script = "python GenerateSources.py".execute()
        script.in.eachLine {line -> println line}
        script.err.eachLine {line -> println "ERROR: " + line}
        script.waitFor()
    }
}

我想要的是跑步generateSourcesjava编译开始之前的任务。我找到了几种解决方案,例如compileJava.dependsOn("generateSources"),但不幸的是他们给出了一个错误:

A problem occurred evaluating root project 'Android'.
> Could not find property 'compileJava' on root project 'Android'.

我不了解 Gradle,无法理解这段代码有什么问题。所以我想知道如何修复这个错误。


显然,android插件没有添加compileJava任务(如java插件会)。您可以检查哪些任务可用gradle tasks --all,然后为您的(否则正确的)依赖声明选择正确的一个。

EDIT:

显然,android插件以无法像往常一样急切访问的方式推迟任务的创建。解决此问题的一种方法是将访问推迟到访问结束配置阶段:

gradle.projectsEvaluated {
    compileJava.dependsOn(generateSources)
}

很可能有一种更惯用的方法来解决您的用例,但需要快速浏览Android 插件文档我找不到一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Android Gradle 插件在编译前运行任务 的相关文章

随机推荐

  • 中带有 List 的动态列

    我正在尝试生成一个dataTable动态地使用列 所以我有一个List
  • Xamarin Forms 滑动按钮

    我希望在我的应用程序中添加一个滑动功能 该功能与 旧 iPhone 上的解锁机制几乎相同 参见图片 我正在努力解决如何在跨平台解决方案上实现这一点 我的直接想法是使用滑块和自定义渲染器 但不确定如果用户在完成幻灯片之前放手 如何创建捕捉以启
  • 在 AVPlayer 框架中播放 3gp 视频的已知问题?

    AVPlayer 无法在设备上播放 3gp 文件是否存在任何已知问题 mp4 文件可以正常播放 但无法从设备上的 URL 播放 3gp 文件 Thanks 如果重要的话 我使用的是 iOS 9 Swift 3 AVPlayer 或 AVPl
  • 使用手动 where 语句具有多个更新条件的 Codeigniter 模型

    我在模型中有返回数据的代码 this gt db gt select title content date where name Joe AND status boss this gt db gt where where query thi
  • SQL Server - 如何选择每个用户的最新记录?

    我正在尝试执行一个 SQL 命令 该命令应该绘制进入数据库的最后一行 基本上 当用户提交最后一个帖子 就像在这个论坛中 时 它会将用户重定向到一个页面 其中包含他的帖子标题 帖子段落以及用户名和帖子提交时间等数据 我开始研究声明 SELEC
  • PHP使用相同的变量后通过引用传递错误

    看一下这段代码 帮助我理解结果 x array hello beautiful world y array bye bye world harsh foreach x as n gt v v DONT CHANGE foreach y as
  • MS SQL Server:以小时和分钟的精度计算年龄

    我需要一个 SQL 函数来计算年龄 它必须准确并涵盖所有极端情况 由于是婴儿病房 所以30分钟是很常见的情况 我查看了其他答案 但找不到处理所有情况的答案 例如 宝宝出生于2014 04 29 12 59 00 000 现在是 2014 0
  • shell 脚本查找每个文件的文件名和行数,现在将此记录插入到 Oracle 表中

    我必须找到文件夹中可用的文件名以及每个文件行数 然后 我将获得两列数据 现在我必须将此记录插入到具有两列 col1 col2 的oracle表中 我可以写一个 shell 脚本来完成这两个任务吗 我发现自己正在写第一部分 IE wc l e
  • 我可以在 Django 中使用 XSLT 吗?

    我们使用 Django 来编写我们的新项目 我们的设计师想要使用 XSLT 编写模板 如您所知 Django 有自己的模板系统 并且我没有任何理由说明为什么设计者不能使用 XSLT 2个问题 我可以在视图中返回 XML 吗 这样做有理由吗
  • 如何正确设置d3.brush范围?

    我正在根据 Mike Bostocks 示例编写 d3 小部件http bl ocks org mbostock 1667367因此 我尝试使用预定义日期设置画笔范围 但范围矩形不适用于这些日期 var brush d3 svg brush
  • 带刻度标签的 Python PyQt4 滑块

    我是 PyQt4 的新手 我正在使用 QSlider 制作 gui 默认情况下 滑块不会显示刻度值 我搜索过 但没有找到简单的方法来做到这一点 那么是否可以或者我必须手动进行 我已经制定了一个解决方案 用于在垂直或水平方向向滑块添加标签 结
  • 如何生成临时 Zip 文件,然后在下载后自动将其删除?

    我有一个下载页面 其中有 3 个下载选项 Word Zip 和 PDF 有一个文件夹包含 doc文件 当用户单击页面上的 Zip 选项时 我希望 ASP NET 使用以下内容压缩文件夹 doc文件到临时 zip文件 然后客户端会从服务器下载
  • 在 g:remoteLink 中传递参数作为 javascript 函数的结果

    在 gsp 文件中我有 javaScript 函数 在 g remoteLink 中我喜欢使用该函数传递参数 像下面这样的东西
  • apache httpclient 4 的 UNICODE URI 编码

    我正在使用 apache http client 4 进行所有 Web 访问 这意味着我需要执行的每个查询都必须通过 URI 语法检查 我尝试访问的网站之一使用 UNICODE 作为 url GET params 编码 即 参数 srh t
  • 使用 INNER JOIN 时出现歧义错误

    我试图从 depts 表中选择 deptno dname 并将其与 emp 表连接以选择 empno 和 ename 然后我想按部门名称对它们进行分组 并按部门升序排序 当加入这两个表时 我一直觉得 deptno 不明确 但这是连接表的共性
  • JavaScript:使用 window.setTimeout 触发 CSS 转换

    这 显然 是一个更大项目的一部分 但我正在尝试触发 CS 转换setTimeout 我知道如何使用 CSS 动画 但这不仅仅是重复的过渡 当属性更改时 将发生 CSS 转换 为了我自己的目的 我使用setAttribute因为这将行为与其他
  • 跨 Java 堆的年轻部分和长期部分的大型数组分配

    是否可以在 Java 堆的年轻区域和永久区域之间分配大型数组 鉴于这些地区有自己的次区域 我认为我稍微简化了问题 我只是想了解一次分配是否可以跨越多个区域 年轻和终身 如果是 那么垃圾收集是如何完成的 因为不同区域使用的策略是不同的 我认为
  • 重新绑定 onclick、on* 事件监听器以进行调试

    我想要猴子补丁事件侦听器注册 I found 这个答案展示如何做到这一点addEventListener const nativeEventListener EventTarget prototype addEventListener Ev
  • 在 Visual Studio 中链接 DLL

    我在 Windows XP 上使用 Visual Studio C 2005 我使用 Visual Studio C 2005 创建了一个 DLL 共享库 但是 我不确定如何链接它 通常我刚刚创建了静态库 lib 我的链接方式与链接库时的方
  • 使用 Android Gradle 插件在编译前运行任务

    我有一个非常简单的build gradle文件包含以下内容 buildscript repositories mavenCentral dependencies classpath com android tools build gradl