通过 Gradle Vuforia 渲染脚本崩溃

Renderscript via Gradle crashs Vuforia

我有一个问题影响了一些 android 设备,不知道如何解决。

这些经过测试的设备出现此错误

System.err: The library libVuforia.so could not be loaded.

Nexus 6p (Android 7)、Galaxy S5 (Android 6.0.1)、Galaxy S7 (Android 6)、小米红米 2 (Android 4.4 .4)、盖乐世 S6 (Android 6.0.1)

当我在 Gradle 中配置设置时发生此错误:

defaultConfig {

           applicationId "com.app.myapp"

           minSdkVersion 16

           targetSdkVersion 24

           versionCode 1

           versionName "1.0"

           renderscriptTargetApi 24

           renderscriptSupportModeEnabled true

}

只有在某些设备上才会发生的最奇怪的事情。 我知道 Vuforia 被编译成 armeabi-v7a,它是 运行 例如在 Moto X Play 中,但其他设备出现报告的问题。

我猜问题是当renderscriptSupportModeEnabled设置为"true"时,gradle试图将不同架构的RenderScript相关库:armeabi-v7a,arm64等复制到apk,而libvuforia仅有 armeabi-v7a 变体(无 64 位)。

当 apk 安装在 arm64 设备上时,它将作为 64 位应用程序安装,因此仅提取 RenderScript 库,并导致问题 "libvuforia not found"。

解决方法是配置 gradle 拆分 apk 设置以仅包含 armeabi-v7a 库:https://developer.android.com/studio/build/configure-apk-splits.html#configure-abi-split,这将强制包管理器将其安装为 32 位。