【问题标题】:Does the R.java file declarations consume spaces from the 64K limit?R.java 文件声明是否占用 64K 限制的空间?
【发布时间】:2016-11-23 21:56:11
【问题描述】:

我想知道R.java 文件声明/分配是否会占用 64K 方法限制的空间?

也许是因为变量的设置/获取?

提前致谢。

【问题讨论】:

    标签: android r.java-file dex android-multidex


    【解决方案1】:

    R 类及其子类没有普通方法,但它们通常有一个无操作构造函数方法,并且可能还有一个静态构造函数方法,用于初始化一些不能在dex文件中静态初始化。

    因此,假设您有大约 10 个类,包括 R 类及其各种子类(R.stringR.layout 等),您最终将获得大约 10-20 个额外的方法引用。

    【讨论】:

      【解决方案2】:

      R.java 不包含方法,仅包含 static 字段。方法和字段都有 65,536 个限制,但它们是分开的。 99% 的时间你会在达到字段限制之前达到方法限制。

      如果您需要,我添加了计算dex-method-counts 库中字段数量的功能。

      【讨论】:

      • 不完全正确。它们可以有构造函数和静态构造函数,它们最终会出现在 dex 文件的方法引用列表中。
      猜你喜欢
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多