【问题标题】:Cardboard library doesn't load on intel-based devicesCardboard 库无法在基于英特尔的设备上加载
【发布时间】:2015-09-22 21:40:07
【问题描述】:

当我在基于 Intel(x86) 的设备上加载 cardboard.jar + libprotobuf-java-2.6-nano.jar(版本 0.5.6)时,我得到一个 java.lang.UnsatisfiedLinkError: Couldn't load vrtoolkit from loader dalvik .system.PathClassLoader 导致:InflateException 错误(无法加载 xml)。

如果我切换到旧库,cardboard.jar + libprotobuf-java-2.3-nano.jar
然后,基于 Intel 的设备就可以工作了。

V.0.5.6

旧版本

似乎 v.0.5.6(latest) 有 lib.armeabi-v7a 但没有一般的 lib.armeabi 或 lib.x86 SO 文件。

我猜这可能是导致问题的原因。

有解决办法吗?其他然后使用旧库?

  • 我测试过的英特尔设备:Samsung Tab 3 10.1、Asus Zenfone 5

【问题讨论】:

  • 我可以确认同样的行为。
  • 另外 Galaxy S6 (ARMv8-A) 也不起作用。
  • 对我来说在 S6 上运行良好。
  • @Jorrit 你确定吗? Galaxy S6 使用 ARMv8-A(64 位 CPU)。但是,我没有看到 cardboard.jar 中包含“arm64-v8a”文件夹
  • @dcoz 是的,这是我的项目的问题,它包含其他具有 arm64-v8a 二进制文件的 JNI 库。我没有示例代码的问题。

标签: android x86 intel google-cardboard


【解决方案1】:

我找到了解决办法。

在 build.gradle 文件中,添加过滤器只包含“armeabi-v7a”和“armeabi”so 文件。

buildTypes {
    release {
        ndk {
            abiFilters "armeabi-v7a", "armeabi" // includes ARM SO files only, so no x86 SO file
        }
    }
    debug {
        ndk {
            abiFilters "armeabi-v7a", "armeabi" // includes ARM SO files only, so no x86 SO file
        }
    }
}

我检查了 Note 5,S6 工作(64 位)并检查了 Intel 设备是否正常工作。

在英特尔设备上,使用陀螺仪环视 360 度场景不起作用,但这是另一个问题。 [编辑]:原来我测试的英特尔设备没有陀螺仪传感器: )

【讨论】:

    猜你喜欢
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多