由於小米系統已經在昨天升級到了MIUI12,我自己也是小米手機的忠實用戶,所以迫不及待的升級了一波MIUI12,用着感覺還不錯,估計小米的大部分用戶也都會迫不及待的升級到MIUI12吧。
然而第二天就被人告知我們游戲在MIUI12系統上崩了,大致是出現了下面的情況。(Failed to load Mono),看到這個就想到是mono那邊報錯了。因為我們對dll加密了,所以使用了自己編譯的mono。可能是升級miui后,觸及了安卓n的私有API禁用規則(具體請看https://blog.csdn.net/weixin_43901866/article/details/88044563),所以導致mono反射調用私有api時掛掉了。但是隨着進一步查日志后發現不是這么回事!
查日志后發現有這么一個報錯,大致意思是/system/lib/libmonobdwgc-2.0.so在被調用時不可訪問或者找不到了。
后面看了我們包里面的libs發現確實是沒有這個so的,所以需要加到包里面去。
在反復測試打包后終於發現了原因,我們項目把Scripting Runtime Version設置為了.Net3.5,所以在打包時並不會把libmonobdwgc-2.0.so加到包里面,但是設置為.Net4.x以后打包就會自動引用libmonobdwgc-2.0.so。出來的包裝到miui12系統上也沒有問題了。
如果還有問題請留言一起討論!!!