0

我有一个应用程序,它使用 Metaio SDK 来展示一些增强现实的东西。

在三星 Galaxy S6 上运行应用程序时,我遇到了一个问题。不幸的是,我没有任何关于该问题的 logcat 日志。

我发现这个链接http://helpdesk.metaio.com/questions/46459/android-sdk-arm64-support/46479.html谈论一个类似的问题,它与三星 S6 上的 64 位 CPU 有关,但我'不确定这是否是我的问题的原因。

以前有人见过类似的东西吗?

4

2 回答 2

0

它很有可能与您的问题有关。

当您在Android上安装APK时,系统会在APK的文件夹中查找本地库目录(armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips64、mips)lib,顺序由Build.SUPPORTED_ABIS.

如果您的应用碰巧有一个arm64-v8a包含其他库的目录,则不会安装 32 位 metaio 库,因为这些库没有混合。这意味着您必须为每个架构提供全套库。

因此,要解决您的问题,您可以从构建中删除 64 位库,或将 abiFilters 设置为仅打包 32 位架构:

android {
    ....
    defaultConfig {
        ....
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }
}

如果您收到与使用已弃用的 NDK 支持相关的错误,请添加到项目根目录下android.useDeprecatedNdk=true名为gradle.properties的文件中。不要对使用已弃用的集成感到难过,因为使用abiFilters仍然是 atm 从 APK 中过滤掉 64 位库的最干净的方式。

于 2015-11-30T18:13:03.817 回答
0

我知道这是一个老问题,Metaio 已经不存在了,但解决方案是将 Metaio SDK 升级到当时最新的可用版本。

于 2017-10-26T10:44:55.117 回答