記一次坑爹的運行時崩潰

要打包給測試,切換分支,然后打release包,成功,然后運行,崩潰。在Bugly上看到崩潰的Log如下:

1 java.lang.ExceptionInInitializerError:
2 org.eclipse.paho.android.service.d.b(Unknown Source:358)
3 ......
4 Caused by:
5 java.util.MissingResourceException:Can't find bundle for base name org.eclipse.paho.client.mqttv3.internal.nls.logcat, locale zh_CN
6 java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1558)
7 java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1381)
8 java.util.ResourceBundle.getBundle(ResourceBundle.java:771)
9 org.eclipse.paho.a.a.b.c.a(Unknown Source:6)
10 org.eclipse.paho.a.a.g.<clinit>(Unknown Source:4)
11 org.eclipse.paho.android.service.d.b(Unknown Source:358)
12 org.eclipse.paho.android.service.d$b.onServiceConnected(Unknown Source:16)
13 android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1681)
14 android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1710)
15 android.os.Handler.handleCallback(Handler.java:790)
16 android.os.Handler.dispatchMessage(Handler.java:99)
17 android.os.Looper.loop(Looper.java:192)
18 android.app.ActivityThread.main(ActivityThread.java:6949)
19 java.lang.reflect.Method.invoke(Native Method)
20 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
21 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:817)

奇怪,MQTT很早就加進去了,之前也發(fā)布過release包沒有問題的。
猜想是什么時候改了gradle或者混淆規(guī)則導致的,看log從上個OK的realse版本到現在為止,確實更改過build.gradle,可能是這個引起的?
后續(xù)做了如下事情:

  • 在最新分支打debug包(關閉混淆),運行OK
  • 多種方式嘗試關閉MQTT的混淆(設置MQTT所在module minifyEnabled為false,添加不混淆MQTT相關類,在外部應用module添加不混淆MQTT類),打realse包,運行異常!!
  • 反編譯第一個OK的版本和最新打出來的異常版本對比,異常版本缺少相關的properties文件。證明混淆規(guī)則中只能保證相關的MQTTJava類不會被混淆,但是打包的時候不能保證保留相應的properties文件。
  • 回退到第一次發(fā)布的版本,打realse包,運行OK
  • 回退到修改gradle的版本,打release包,運行異常
  • 回退到修改gradle的前一個版本,打realse包,運行異常!?。ɡ碚撋?,應該這里是OK的)
  • 后續(xù)二分法嘗試了回退版本,并重新打包驗證,怎么好像又可以運行了?有點凌亂!

最后,checkout到最新版本,clean工程,重新打realse包,運行OK!??!

結論:以后發(fā)布版本之前,請先Clean!!

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容