【问题标题】:Android Unity3d and VUForia with Digimarc. Failure to initialize! Your hardware does not support this applicationAndroid Unity3d 和 VUForia 与 Digimarc。初始化失败!您的硬件不支持此应用程序
【发布时间】:2017-06-15 06:33:54
【问题描述】:

我正在开发一个 AR 应用程序,我在其中使用 Unity 和 VUForia 来运行 AR 场景。 Unity AR 部分是使用 Unity Plugins 开发的,我将此插件与 Android Studio Project 集成。 Android 项目还使用 Digimarc SDK 来识别 SKU。 现在的问题是当我运行与 Digimarc 集成的完整项目时,我从 Unity 收到错误:初始化失败!你的硬件不支持。 但如果我从项目中删除 Digimarc SDK,Unity 部分运行完美。

【问题讨论】:

    标签: android unity3d vuforia


    【解决方案1】:

    经过2天的研究,我找到了这个问题的根本原因和解决方案。

    问题:

    android 中有多种硬件架构,如“armeabi-v7a”、“arm64-v8a”和“x86”。 大多数 Android 设备支持不止一种架构。 当应用程序使用本机库时,它会提供本机库以支持各个文件夹中的体系结构,例如 lib/armeabi-v7a/ 和 lib/arm64-v8a 等。 Android 设备的操作系统在编译时检查提供的文件夹中的本地库,并复制最兼容的文件夹并保留其他文件夹。 就我而言,VUForia SDK 仅为“armeabi-v7a”架构提供本机库,但 Digimarc SDK 为“armeabi-v7a”、“arm64-v8a”和“x86”提供本机库。 现在,当我将 Unity+vuforia only 应用程序安装到设备时,因为它只有“armeabi-v7a”文件夹,设备从这里复制库并且应用程序正常运行。 但是,当我们安装同时集成了 unity+vuforia 和 Digimarc 的完整应用程序时,应用程序包确实包含所有 3 种架构的合并文件夹,但 VuForia 库仅在“armeabi-v7a”文件夹中可用,其余 2 确实包含 digimarc 的只有库,它们没有 VUForia 的库。 现在,复制“arm64-v8a”或“x86”库的设备将找不到 VUforia 所需的库,我们在此类设备上看到硬件不支持错误。

    解决方案:

    首先,我尝试查找“arm64-v8a”和“x86”的 VUForia 库,但找不到。 然后我尝试从“armeabi-v7a”文件夹中复制 VUforia 库并粘贴到“arm64-v8a”和“x86”文件夹中,但是当我尝试运行该应用程序时,它因抱怨提供的库不适合而崩溃正确的架构。 最后,我从 digimarc 的“dms.aar”文件中删除了“arm64-v8a”和“x86”文件夹,并将其重命名为“dms_armeabi-v7a_only.aar”,并将原来的“dms.aar”替换为“dms_armeabi-v7a_only.aar”在项目中 我尝试在我可以访问的所有设备上运行该应用程序,该应用程序在 digimarc 和 Unity+Vuforia 页面上都运行良好。

    【讨论】:

      猜你喜欢
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2011-10-15
      • 2012-06-26
      • 1970-01-01
      相关资源
      最近更新 更多