【问题标题】:How do I install Android SDK Platform-Tools 24.0.0?如何安装 Android SDK Platform-Tools 24.0.0?
【发布时间】:2016-06-16 20:05:05
【问题描述】:

我正在按照指南设置 Android N Preview https://developer.android.com/preview/setup-sdk.html

在“更新或创建项目”中,Google 说我需要 24.0.0 平台工具。

请确保您已更新项目以使用 Android SDK Build Tools 24.0.0 和 Android SDK Platform-Tools 24.0.0。

我已经安装了新的 SDK 平台:Android 6.X (N),API 级别 24,修订版 1。但是,当我打开 SDK 工具时,唯一的 Android SDK 平台工具版本是 23.1。

我已针对 Android 24 和 Jack 和 Java 8 (see) 更新了我的 build.gradle

在 Android 24 模拟器上一切正常,但在运行 Android 22/23(小于 24)的设备或模拟器上崩溃并出现以下错误:

java.lang.NoSuchMethodError: 没有虚拟方法 流()Ljava/util/流/流;在类 Ljava/util/ArrayList 中;或者 它的超类('java.util.ArrayList' 的声明出现在 /system/framework/core-libart.jar)

我怀疑原因是 SDK Platform-Tools 版本为 23.1.0 而不是 24.0.0,但如果有其他解决方案,我很乐意听到。

编辑

安装平台工具 24.0.0 rc1 没有修复崩溃。 鉴于我已按照所有说明设置预览和 Jack 编译器,我不确定还能尝试什么。

【问题讨论】:

  • SDK Platform-Tools 与构建无关(你有最新版本)
  • 你有 Android SDK Build-Tools 24 吗?只需在 SDK 工具下展开第一个选项,它就应该在下面。
  • 是的,我有 Android SDK Build-Tools 24(以及 23.0.2 和 23.0.3)。 build.gradle 正在使用 compileSdkVersion 24
  • 在独立的 SDK 管理器中,您会在“工具(预览频道)”区域找到所需的 rev 24 rc1
  • 谢谢@CommonsWare,我能够安装 24.0.0 平台工具,但不幸的是,这并没有修复 NoSuchMethodError

标签: android android-sdk-tools


【解决方案1】:

但在运行 Android 22/23(小于 24)的设备或模拟器上崩溃并出现以下错误

java.util.stream.Stream was added in API Level 24。此类不能在旧设备上使用。

某些 Java 8 功能(如 lambda 表达式)可能适用于旧设备,但不适用于 Android N 中引入的类。

【讨论】:

  • 我将以下内容理解为 lambda 和流在早期版本中可用 “要在早期版本的 Android 上测试 lambda 表达式、方法引用和类型注释,请转到您的 build.gradle 文件,然后设置compileSdkVersion 和 targetSdkVersion 到 23 或更低。您仍然需要启用 Jack 工具链才能使用这些 Java 8 功能。”来源:developer.android.com/preview/j8-jack.html#supported-features
  • 事后看来确实有道理,谢谢您的解释
【解决方案2】:

只需选择显示包详细信息,然后您就可以找到所有版本。参考附图

【讨论】:

    【解决方案3】:

    假设你有 Android Studio 2.1

    启动独立 SDK 管理器。

    从那里应该可以安装 Android N API 24

    【讨论】:

      【解决方案4】:

      您的 API 级别 24 应用可以在 Android 24(虚拟)设备上运行,但不能在 24 之前的设备上运行 - 所以一切都与预期的完全一样。

      【讨论】:

      • 这个答案并没有增加 CommonsWare 已经说过的任何内容。请不要发布只是重复其他人的答案。谢谢!
      • 确实已经说过“在 API 级别 24 中添加了类,因此该类不能在旧设备上使用”,但是未来的读者可能会受益于澄清问题背后的错误推理。因为 OP 说:'一切都适用于 API 24 设备,但不适用于 API 22/23 设备,所以我怀疑我应该使用 API 24 构建应用程序以使其工作。'。虽然实际上正确的推理是这样的:“它适用于 API 24 设备,但不适用于 API 22/23 设备,所以我怀疑我应该使用较旧的 API (22/23) 构建应用程序来实现它使用旧设备。'。
      猜你喜欢
      • 2020-05-25
      • 2016-11-30
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      相关资源
      最近更新 更多