【问题标题】:Does Java recompile every file every time?Java是否每次都重新编译每个文件?
【发布时间】:2012-05-02 20:16:11
【问题描述】:

我正在编译一个使用 symja 库的示例 Android 应用程序,它本身通过将以下库直接包含在 src 中来使用它们:

com.google.common.*
edu.js.*
org.apache.commons.math*
org.matheclipse.*

构建此应用程序大约需要 1:30 分钟和 2.8 GB RAM。我认为对于像计算机代数系统库这样复杂的东西来说这很好。

不幸的是,这不是第一次。

当我只更改构成实际应用程序而不是库的少数 .java 文件之一中的一行代码时,我不得不再次等待 1:30 分钟。

这是我在那段时间收到的唯一进度通知:

http://puu.sh/sBr5

我检查了文件修改日期,在那个时候只有 .apk 和 .dex 文件被更新。是什么让它花这么长时间?

Project directory (zip)

【问题讨论】:

  • 不,它不是这样工作的——它不应该重新编译每个文件——你确定是这样吗?

标签: java android eclipse


【解决方案1】:

Eclipse Java 构建器是增量的(请参阅this page 上的“侧边栏:Java 构建器”),因此不必每次都重新构建整个项目。如果它确实在重新编译每个文件,那么一定是发生了一些不寻常的事情。

【讨论】:

  • 原来是你的 dex 错误,这意味着 dex 每次构建都会翻译每个 .class 文件。
【解决方案2】:

只需在项目下的菜单中取消选择“自动构建”即可。

【讨论】:

  • 假设他正在使用 eclipse :)
  • @JimBarrows OP 将问题标记为“日食”,所以我认为这是一个相当安全的假设 :)
  • 这并没有解决问题。在更改代码中的某些内容后,每次我在手机上运行程序时,我基本上都会盯着这个 1 分钟。 puu.sh/sBr5 如果我更改任何其他资源,我不必等待那么久,所以我确定它与代码有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
相关资源
最近更新 更多