【问题标题】:Metaio Android SDK: crash on Samsung Galaxy S6Metaio Android SDK:三星 Galaxy S6 崩溃
【发布时间】:2015-11-24 15:12:50
【问题描述】:

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

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

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

以前有人见过类似的吗?

【问题讨论】:

  • 如果您没有设备的物理访问权限,但您想接收故障转储,您可以使用ACRA(需要重新构建您的应用,请参阅stackoverflow.com/a/22473552/192373)或Power菜单错误报告(需要在客户端设备上配置开发者选项)。

标签: android android-ndk 64-bit augmented-reality metaio


【解决方案1】:

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

当您在 Android 上安装 APK 时,系统会在 APK 的 lib 文件夹中查找原生库目录(armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips64、mips),在顺序由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 位库的最干净的方式。

【讨论】:

  • 非常感谢,我已经删除了其他 arm64 库,但仍然无法正常工作,我将采用已弃用的 NDK 方法,但我使用的是没有 gradle 的 eclipse,在哪里设置此配置?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2018-03-16
    • 1970-01-01
    相关资源
    最近更新 更多