我正在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