【问题标题】:List of devices on which Renderscript doesn't workRenderscript 无法运行的设备列表
【发布时间】:2016-04-11 02:44:12
【问题描述】:

我的应用需要 Renderscript,因为它会执行一些在 Java 中需要几秒钟的图像处理。在发布之前,我已经在许多设备上进行了测试,甚至是一些旧型号(例如三星 Galaxy Tab 2,API 17),并且该应用程序运行良好,即使在这些设备上也是如此。由此,我没有看到将最低 API 设置为高于 17 的理由。现在,在 Google Play 上发布几周后,我看到该应用程序在某些设备上崩溃,例如具有 API 17 的 Galaxy S3 (m0) 或 Galaxy S3带有 API 18 的 Mini Value Edition (goldenvess3g)。

 android.support.v8.renderscript.s: Error loading RS jni library: java.lang.UnsatisfiedLinkError: unknown failure

因此这并不奇怪,因为我知道某些不支持 Renderscript 的处理器类型或其他可能导致问题的设备特定问题。问题:

  1. 有没有一种(近似的)方法可以找出 API >= 17 的 6'811 台 Android 设备中哪些不支持 Renderscript?例如,基于括号中的术语 (m0, goldenvess3g) 可能与处理器类型有关?如果是这样,我可以在 Google Play 上排除这些设备。
  2. 如果没有这种可能性,您是否建议将最低 API 设置得更高,例如API 19?听起来很幼稚,但我没有找到一致的信息。

非常感谢您的反馈。

【问题讨论】:

  • 如果你的最小 API 是 17,你为什么要使用 RenderScript 支持库?
  • ozbek - 这是一个非常好的问题!不知何故,我一直认为强烈建议使用支持库,这样我就不再仔细检查对它的需求了......但似乎很大一部分不兼容问题正是来自这个事实!真讽刺。请将您的评论放入anwer中,您将获得积分!谢谢。
  • Settembrini - 当您看到此错误时,您使用的是哪个 BuildTools 版本?某些 JellyBean 设备上提供的 RenderScript 支持库存在问题,已在 Build-Tools 23.0.3 中修复。此外,在 API 17 上使用本机 RenderScript 意味着您不能将“renderscriptTargetApi”设置为高于 17,否则您的脚本 (.rs) 将无法正常工作。
  • 第 1 阶段:我在 API 17、RS-TargetAPI 18、BuildTools 22.0.1 中看到的这个特定错误。和 support.v8.rs。后来(因为我没有收到对上述帖子的反馈)我更改为最低 API 19,保留其余部分(第 2 阶段)。由于 RS 失败,这仍然给我带来了一些 1 星评价。第 3 阶段:现在我放弃了 support.v8.rs,切换到 BuildTools 23.0.3,同时仍然使用 RS-TargetAPI 18 和最低 API 19。Miao - 你认为现在还好吗?
  • Miao- 给你的后续问题 ;-)。有没有办法过滤掉可能不完全支持 RS 的设备,例如根据上述第 1 点中的括号中的术语? Renderscript 是个好东西,但如果它不起作用,用户会在一秒钟内给你 1 星评级...

标签: android processor renderscript


【解决方案1】:

根据android.renderscript 文档,它从 API 级别 11 开始可用。由于您的最低 API 级别为 17,我建议使用它而不是 android.support.v8.renderscript

如果一个目标是运行较低版本的 Android 的设备,则应使用支持库 API,显然,您不是这种情况。

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 2022-12-02
    • 2014-12-07
    • 1970-01-01
    • 2019-11-08
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多