如何避免剥离Android应用程序的本机代码符号

我在本机代码中获得sigsegv 11 ,我需要避免剥离以了解什么是错误的。 该应用程序使用库(aar),我能够避免使用’cmd-strip’hack剥离aar。 但是在apk中剥离版本的.so仍然被使用,所以应用程序剥离符号,可能是在transformNative_libsWithStripDebugSymbolForDebug gradle任务时。 有什么改变可以避免吗?

PS。 在SO上发现了类似的问题 ,但它有点不同(在我的情况下使用aar而不是剥离的符号)。

在packagingOptions中有一个未记录的方法’doNotStrip’,只需在build.gradle中添加以下行

 packagingOptions{ doNotStrip "*/armeabi/*.so" doNotStrip "*/armeabi-v7a/*.so" doNotStrip "*/x86/*.so" } 

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