在 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“ )(代码片