如何避免剥离原生代码符号为Android应用程序

qhhrdooz  于 2023-10-14  发布在  Android
关注(0)|答案(2)|浏览(99)

我在本机代码中获得sigsegv 11,我需要避免剥离以了解问题所在。该应用程序使用库(aar),我能够避免剥离的aar与'剥离' hack。但在apk剥离版本的.so无论如何使用,所以应用程序剥离的符号,可能而transformNative_libsWithStripDebugSymbolForDebug gradle任务.有什么改变可以避免吗?
PS.在SO上找到了similar question,但它有点不同(在我的情况下,这里使用aar,没有剥离符号)。

im9ewurl

im9ewurl1#

在packagingOptions中有一个未文档化的方法'doNotStrip',只需在build.gradle中添加以下行即可

packagingOptions {
    doNotStrip "*/arm64-v8a/*.so"
    doNotStrip "*/armeabi-v7a/*.so"
    doNotStrip "*/x86/*.so"
    doNotStrip "*/x86_64/*.so"
}
zrfyljdw

zrfyljdw2#

幸运的是,你实际上不需要在应用程序中保留符号。NDK提供了一个名为ndk-stack的工具(它位于NDK的根目录中),可以为您符号化堆栈跟踪:https://developer.android.com/ndk/guides/ndk-stack.html

相关问题