【问题标题】:Dependencies in the app to fulfil the API Target 26 in Aug/Nov 2018应用程序中的依赖项以在 2018 年 8 月/11 月实现 API 目标 26
【发布时间】:2018-07-05 09:13:57
【问题描述】:

Google 宣布

从 2018 年 8 月 1 日起,Google Play 将要求新应用至少面向 Android 8.0(API 级别 26),并且从 2018 年 11 月 1 日起,应用更新面向 Android 8.0

应用中使用的依赖项是否需要至少针对 Android 8.0(API 级别 26)?

【问题讨论】:

  • 我不同意这被标记为重复。这个问题询问依赖关系,而其他“重复”问题和答案只提到应用程序本身(我认为这与依赖关系非常不同)。
  • 根据announcementYES,“确保您的第三方 SDK 依赖项支持 API 26”。但是,关于针对 API 26 的依赖项,是否知道 Google Play 商店如何验证这一点? AFAIK,您的应用程序的 targetSdkVersion 值是编译后的 apk 中出现的唯一版本。此外,还有一些非常流行的库,例如仅针对 API 25 的 Facebook SDK。我真的很好奇其他开发人员也在做什么。
  • @blinkmacalahan 在我看来,announcement 意味着开发人员需要确保依赖项与 API 26 兼容,但它们不需要遵守或针对 API 26。我是正确的?而且,我认为 Google Play 商店验证应用程序中的 API 版本,而不验证应用程序中使用的依赖项。
  • 来自 google 的消息 - 您的应用需要使用运行时权限才能让我们完成审核。请更新您的应用程序以 API 级别 26 或以上为目标,然后重新提交声明表。我在问,我是否需要更新我正在使用的每个依赖项的 TargetSDK,或者只是对我的 Android Manifest 有贡献的那个。合并的清单中有某些依赖项在清单来源下,一些在其他清单文件下(不向主清单文件贡献任何元素)。

标签: android


【解决方案1】:

正如 Jake Wharton 指出的here,如果在依赖项中指定了 targetSdkVersion,它会在使用它的应用程序中合并。所以最好是依赖项在其 gradle 中没有任何 targetSdkVersion 并将其留给使用它的应用程序。否则,合并要么使用更高的 targetSdk,要么失败。

【讨论】:

  • 来自 google 的消息 - 您的应用需要使用运行时权限才能让我们完成审核。请更新您的应用程序以 API 级别 26 或以上为目标,然后重新提交声明表。我在问,我是否需要更新我正在使用的每个依赖项的 TargetSDK,或者只是对我的 Android Manifest 有贡献的那个。合并的清单中有某些依赖项在清单来源下,一些在其他清单文件下(不向主清单文件贡献任何元素)。
  • 杰克·沃顿错了,或者从那以后事情发生了变化。 Manifest merging rules 明确指出“<uses-sdk> 元素中的属性始终使用更高优先级清单中的值”和“build.gradle 文件中的构建配置会覆盖合并清单文件中的任何相应属性”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
相关资源
最近更新 更多