1:打包android工程的注意事项
1.现在打包一般都是IL2cpp的了,C#代码都会被转为c++,这时应用出现崩溃时,只会报出一些崩溃函数的内存地址,这时就需要使用工具解析崩溃的函数,那么首先我们打包的时候一定要勾选生成
![](https://img.haomeiwen.com/i13112467/177607c974242bdc.png)
也可以通过代码生成EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Debugging
2.unity的so位置在 C:\Program Files\Unity\Hub\Editor\2021.3.1f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols 目录
但是打包时都开启了代码裁剪 所以使用这里的不一定能对应的上
所以我们都直接使用android_project下的so文件,这里就要使用android_project下的symbols,使用gradle打包的都在ndroid_project\unityLibrary\symbols,还有launcher\build\outputs\native-debug-symbols\release 这两个目录下
symbol文件准备好后放到文件目录,一般结构如下
![](https://img.haomeiwen.com/i13112467/88a2b5218359cf76.png)
2:后台崩溃监控
1.一般我们都会接入bugly来监控应用的崩溃信息,或者能重现崩溃的话 我们也可以通过模拟器的adb来抓取日志,bugly可以上传符号表,但有时解析不出来
2.或者我们可以使用ndk addr2line工具来还原崩溃,注意ndk的版本要和unity使用的对应上
工具目录在ndk安装目录androidSdk/ndk/21.3.6528147/toolchains/目录下
addr2line_64=aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-addr2line
在定义symbol的路径
ndkPath=/Users/administrator/Documents/GameEnv/androidSdk/ndk/21.3.6528147/toolchains/
addr2line_64=aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-addr2line
tool_64=addr2line_64
Symbol = 崩溃的代码位置
"soSymbolPath
logPath
3:这里推荐使用unity插件Android Logcat来分析
1.Android Logcat工具来还原要比其他方式好用,强烈推荐
首先我们开始安装Android Logcat,点击window/Package Manager
![](https://img.haomeiwen.com/i13112467/146a2fd4d063b057.png)
![](https://img.haomeiwen.com/i13112467/c55891293a940972.png)
然后点击Tools/Stacktrace Utility配置符号表路径
![](https://img.haomeiwen.com/i13112467/ea3d6aaf1f8b5acf.png)
![](https://img.haomeiwen.com/i13112467/2b3a0a9382f9c07f.png)
然后拷贝崩溃代码到Original,点击Resolve Stacktraces进行分析
![](https://img.haomeiwen.com/i13112467/be9c9951abc42aad.png)
这样就能分析出崩溃代码了
![](https://img.haomeiwen.com/i13112467/6ffdc57013aeb66a.png)
网友评论