我有一个应用程序使用Metaio SDK来显示一些增强现实的东西。
我遇到一个问题,即在三星Galaxy S6上运行时应用程序崩溃了。不幸的是,我没有任何logcat日志来解决这个问题。
我发现此链接http://helpdesk.metaio.com/questions/46459/android-sdk-arm64-support/46479.html正在谈论类似的问题,它与三星S6上的64位CPU有关,但我不确定这是否是我问题的原因。
今天有没有看过类似的东西?
答案 0 :(得分:0)
很有可能与您的问题有关。
在Android上安装APK时,系统会在APK的lib
文件夹中查找本机库目录(armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips64,mips),按照Build.SUPPORTED_ABIS
确定的顺序。
如果您的应用程序碰巧有一个arm64-v8a
目录和其他libs,则不会安装32位metaio库,因为libs没有混合。这意味着您必须为每个体系结构提供完整的库集。
因此,要解决您的问题,您可以从构建中删除64位库,或者将abiFilters设置为仅打包32位架构:
android {
....
defaultConfig {
....
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
}
如果您收到与使用已弃用的NDK支持相关的错误,请将android.useDeprecatedNdk=true
添加到项目根目录中名为 gradle.properties 的文件中。使用已弃用的集成并不会感觉不好,因为使用 abiFilters 仍然是从APK过滤掉64位库的最简洁方式。
答案 1 :(得分:0)
我知道这是一个老问题,Metaio不再存在,但解决方案是将Metaio SDK升级到当时最新的可用版本。