在Android Gradle任务中获取编译后的.class输出目录

2023-12-26

我正在为我的 Android 项目创建一个 Gradle 任务,它需要知道编译后的路径.class文件。我怎样才能得到这条路径?我找到了建议(here https://stackoverflow.com/a/26667774/3004881 and here https://stackoverflow.com/q/19927627/3004881;另见Gradle 文档为SourceSet https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/SourceSet.html) that sourceSets.main.output.classDir会给我这条路径,但是当我尝试使用它时,我收到错误

找不到财产'output'在源集上main.

即使我使用以下内容创建一个新的最小项目,也会发生这种情况build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
}
apply plugin: 'android'
android {
    compileSdkVersion 22
    buildToolsVersion "20.0.0"

    task printClassesDir << {
        println sourceSets.main.output.classesDir
    }
}

这个最小的项目构建得很好,但如果我运行该任务,则会出现该错误printClassesDir。我怎样才能得到.class我的任务中的文件输出目录?


我也尝试过的建议<build variant>.javaCompile.classpath from 这是对另一个问题的回答 https://stackoverflow.com/a/28224687/3004881。我能够通过以下方式访问此属性

applicationVariants.find{it.name == 'debug'}.javaCompile.classpath

但这个文件集合是空的。


作为参考,以下是我的最小项目的其他文件:

src/main/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="a.b">
  <uses-sdk
      android:minSdkVersion="9"
      android:targetSdkVersion="22" />
  <application>
    <activity android:name=".Main">
      <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application>
</manifest>

src/main/java/a/b/Main.java

package a.b;
import android.app.Activity;
public class Main extends Activity { }

我能够使用找到这条路径compile<Variant>JavaWithJavac任务。这些都是类型Java编译 https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.JavaCompile.html,所以他们有destinationDir特性:

task printDebugClassesDir << {
    println compileDebugJavaWithJavac.destinationDir
}

这将打印build/intermediates/classes/debug目录,其中包含编译后的类文件。同样的事情也适用于发布。

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

在Android Gradle任务中获取编译后的.class输出目录 的相关文章

  • SearchView过滤ListView

    我已经实现了搜索视图来过滤我的列表视图项目 当我输入任何文本时 它会过滤列表 但当我退出搜索视图时 它不会返回原始列表项 public class PlacesListAdapter extends ArrayAdapter
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • Android SIP 来电使用带有广播接收器的服务

    大家好 其实我正在尝试创建一个应用程序 支持基于 SIP 通过互联网进行音频呼叫 这里使用本机 sip 我遇到了来电问题 我已经完成了服务的注册部分 但是在接听电话时我无法接听电话 请帮助我 Service file package exa
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 在哪里放置对象映射(在 RestKIt 中)

    因为我不想劫持另一个线程 所以我提出了关于映射的问题 首先阅读 RestKit 中放置对象映射的最佳位置是哪里 https stackoverflow com questions 7190721 wheres the best place
  • 如何在启用 Markdown 的 Slack 附件行的开头显示大于号?

    我正在尝试匹配 Slack API 消息的模型 该消息在附件文本行开头的链接中具有大于 gt 字符 该模型还在附件文本中使用斜体和粗体 所以我有text in the mrkdown in大批 不幸的是 这会导致 Slack 解释为 gt
  • 访问 RFC 调用系统的堆栈内存

    当程序在 SAP ECC 中运行时 系统堆栈 存储所有全局变量 无论在该单个会话中调用什么模块 程序 当它调用支持 RFC 的功能模块 FM 时 会在被调用系统中创建一个新的系统堆栈 并且当被调用 FM 完成时 只能在 ECC 中检索被调用
  • InvalidCharacterError 仅在 IE 中出现

    我们有一个订单表单 它使用 ziplookup 功能 当在字段中输入邮政编码时 城市 县 州和邮政编码也会输入到同一字段中 tr td class formLabel Zip Code td td class formColon nbsp
  • SwiftUI 和 NavigationView 的动画错误可能是什么原因造成的?

    我一直在尝试一些 SwiftUI 布局 我想尝试的事情之一是创建一个简单的圆形进度环 在对代码进行了一段时间的研究之后 我设法让一切都按照我希望的方式工作 至少对于原型来说是这样 当我将此视图嵌入到 SwiftUI NavigationVi
  • 将 python 日期格式 (%Y) 转换为 java (yyyy)

    我有很多时间格式 格式如下 Y m d H M S 有没有快速的方法或库将它们转换为 YYYY MM DD HH MM SS 我当前的方法是使用字符串替换 但也许我会错过一些边缘情况 我可能的格式化程序是 d b Y y H M S p f
  • Node.JS deflate/gzip 响应文本

    我看到了所示的示例here http nodejs org api zlib html zlib examples response writeHead 200 content encoding deflate raw pipe zlib
  • 在可能保存模型时处理 ember-data 中的自定义服务器端错误

    保存模型时是否有正确的方法来处理自定义错误 举个例子 假设我有一个只有两个属性 名称 和 值 的模型 当我这样做时 var myModel this get store createRecord myModel name someName
  • IE9 中 的边框半径错误

    看见那个 div 元素正确渲染边框 边框半径 但任何 a or a div
  • 如何使用 JavaScript 获取滚动条位置?

    我正在尝试使用 JavaScript 检测浏览器滚动条的位置 以确定当前视图在页面中的位置 我的猜测是 我必须检测拇指在轨道上的位置 然后检测拇指的高度占轨道总高度的百分比 我是否过于复杂化了 或者 JavaScript 是否提供了比这更简
  • 当在 contenteditable 按钮中输入空格时,Chrome 会触发 onClick

    我有一个按钮contenteditable true 我可以很好地编辑文本 但无法在 Chrome 中输入空格 当我按下空格键时 Chrome 会在按钮上触发 onClick 事件 然而 Safari 会按照您的预期插入一个空格 使用此代码
  • C++ 的类似 Hibernate 的层

    在 C 中使用 DB 确实是一团糟 当我转向 Java 并能够使用统一的系统将整个层抽象出来 又名 Hibernate 时 这真是令人耳目一新 有几个用于 DB 的 C 抽象层 但它们通常是特定于供应商的 并且只有一个薄层包装了真正的 C
  • 我想单击列表视图中的任意位置(空白区域)

    作为一名新的 Android 程序员 我必须运行我的待办事项应用程序 对于圣诞节购物来说这是可以接受的 但我真的很想让整个列表项行可单击 现在我必须点击文本 物品越短越难击中 我的主要活动扩展了 ListActivity 我将 Resour
  • rspec 测试中 Rails 应用程序的端口号

    我想使用 rspec 结合 Faraday 和 Faraday middleware 来测试 Rails 应用程序的 json 响应 要使用 Faraday 需要应用程序 URL 在测试中我想使用本地主机 端口号 问题是 如何在 rspec
  • 如何在编辑 XML 文件时运行我的项目?

    当我编辑 XML 文件并尝试运行 Android 项目 通过单击工具栏中的 播放 按钮或 command shift F11 时 没有任何反应 我必须切换到我也在编辑的 java 文件才能运行该项目 我怎样才能解决这个问题 您无法运行 xm
  • (PyQt) QTreeView - 想要展开/折叠所有子级和孙级

    我希望能够展开或折叠 QTreeView 中特定分支的所有子级 我正在使用 PyQt4 我知道 QTreeView 有一个绑定到 的展开所有子项功能 但我需要两件事 它需要绑定到不同的组合键 shift space 我还需要能够折叠所有子项
  • React Native - 无法执行 JS 调用:__fbBatchedBridge 未定义

    我一直在关注这个教程https www raywenderlich com 126063 react native tutorial https www raywenderlich com 126063 react native tutor
  • 如何使用Python将主机名添加到known_hosts?

    我正在使用此代码将服务器添加到known hosts subprocess Popen sshpass p password ssh o StrictHostKeyChecking no add key stdout subprocess
  • SELECT DISTINCT 可以与 Perl 的 DBD::CSV 一起使用吗?

    我在网上找到了一个 SELECT example 当我在脚本中尝试它时 我收到此错误消息 Specifying DISTINCT when using aggregate functions isn t reasonable ignored
  • 在Android Gradle任务中获取编译后的.class输出目录

    我正在为我的 Android 项目创建一个 Gradle 任务 它需要知道编译后的路径 class文件 我怎样才能得到这条路径 我找到了建议 here https stackoverflow com a 26667774 3004881 a