在 arm64-v8a lib 上运行 ndk-stack 失败并出现错误文件格式无法识别

Posted

技术标签:

【中文标题】在 arm64-v8a lib 上运行 ndk-stack 失败并出现错误文件格式无法识别【英文标题】:running ndk-stack on arm64-v8a lib fail with error File format not recognized 【发布时间】:2016-08-04 02:05:10 【问题描述】:

我为arm64-v8a 创建了基于本机的预构建库。我在运行时崩溃了,我喜欢在崩溃日志上运行ndk-stack(就像我为armeabi-v7a lib 所做的那样),但现在ndk-stack 返回错误消息

文件格式无法识别

并且未能显示回溯。 为arm64-v8a 文件运行ndk-stack 的正确方法是什么? 谢谢,

【问题讨论】:

【参考方案1】:

请注意,对于-sym 选项-sym $PROJECT_PATH/obj/local/armeabi-v7a,您需要正确指定符号文件,例如正确匹配 ABI,对于arm64-v8a,它应该类似于-sym $PROJECT_PATH/obj/local/arm64-v8a

在此查看官方使用文档: https://developer.android.com/ndk/guides/ndk-stack

有两种方法可以使用该工具。您可以将 logcat 文本作为程序的直接输入提供。例如:

adb logcat | $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi-v7a

您还可以使用 -dump 选项将 logcat 指定为输入文件。例如:

adb logcat > /tmp/foo.txt $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi-v7a -dump foo.txt

当它开始解析 logcat 输出时,该工具会查找星号的初始行。例如:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

【讨论】:

以上是关于在 arm64-v8a lib 上运行 ndk-stack 失败并出现错误文件格式无法识别的主要内容,如果未能解决你的问题,请参考以下文章

使用路径“lib/arm64-v8a/libnode.so”找到 2 个文件 - nodejs-mobile-react-native 的 jniLibs 问题

一个UnsatisfiedLinkError错误和它解决办法

More than one file was found with OS independent path 'lib/arm64-v8a/libsqlite.so'

在 Qt Creator 中启动应用程序之前,如何将我在 Qt for Android 中的 .so 文件复制到 android-build/libs/arm64-v8a 中

Android中的armeabi、armeabi-v7a、arm64-v8a及x86的详解

错误记录Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )(代码片