【问题标题】:shrinkResources true can't be used on Instant Apps Feature?shrinkResources true 不能用于即时应用功能?
【发布时间】:2017-09-14 13:05:27
【问题描述】:

当我尝试缩小我的功能 APK 大小时,我在我的功能 Build Gradle 中使用 shrinkResources true。 但是它抱怨Error:Resource shrinker cannot be used for libraries.

这篇文章要求我们使用它 https://medium.com/jet-stories/make-your-app-instant-33855ab5d02b

是我做错了什么还是 Instant Apps 真的不支持?

【问题讨论】:

标签: android android-instant-apps


【解决方案1】:

根据我从文章中了解到的情况(我刚刚快速阅读,还在我的阅读列表中等待),shrinkResources true 只需要将 APK 大小减少removing unused resources,但这不是正式的要求即时应用程序。我猜工具链无法确定资源是否会在库中被使用,因为最终的 APK 没有构建。

因此,如果您的项目中没有未使用的资源,则应该不是问题,可以将其删除。

然后,您的项目中可能存在一件事(我自己没有尝试过 Instant Apps,只是阅读并看到了 Google IO 演讲):据我了解,instant app 的所有模块都是 APK,而不是图书馆。因此,如果您将shrinkResources true 应用于 APK,您应该可以开始使用了。如果您的项目中有用于组装最终 APK 模块的库,请删除那里的 shrinkResources true,并将其留在模块中。

【讨论】:

  • Instant App 中的功能将在 APK 中上交。所以它是一个 APK 而不是库。这就是为什么AS抱怨shrinkResources不能用的原因。
  • 感谢您的澄清!然后,对我来说,这似乎是一个错误,同意。我会留意你已经打开的那个。
  • 感谢您的澄清。这真的很有效。
【解决方案2】:

我认为这不是和 AndroidStudio 的 bug,而是 Gradle 的 bug。 我正在尝试使用更新版本的 Gradle(以前使用 com.android.tools.build:gradle:2.2.3,将其升级到 com.android.tools.build:gradle:3.0.1)和 Jenkins 进行构建我仍然收到错误

">资源收缩器不能用于库。"

【讨论】:

  • 如果您有不同的问题,您可以提出问题并向 Google 提交错误,然后在此处链接到它吗?对大家都有帮助,谢谢! issuetracker.google.com/issues/…
【解决方案3】:

参考Google issue tracker

修复将在3.2 canary 1 中发布。

我刚刚在 3.2 canary 3 上再次尝试了它,它正在工作。您确定将插件版本更新为3.2.0-alpha03?很容易被忽视。

如果任何问题仍然存在,请通过Google issue tracker 报告,他们将重新打开进行检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多