本來今天想打個包(之前也沒事 )做一下加固功能,遇見這樣一個問題
網上有一些博客,需要defaultConfig下添加multiDexEnabled true,這句話是幹什麼用的呢,就是分包,爲什麼需要分包呢,因爲工程的方法數超過了64k,詳見另外一篇文章Android工程方法數超過64K。這就說明我是有這句話的,而且看看報錯異常中確實有multi的字樣。而這個確實也是後來轉爲Android Studio後加的,所以基本問題就定位到這裏了。
所以去掉了這個分包功能(我知道去掉肯定會無法運行,只是想看看打包apk的時候會不會報這個error),事實證明,直接提示方法數超過64k,編譯不過,我尷尬了。
去看了看添加的gradle配置 已經有了丫
defaultConfig {
…
multiDexEnabled true
}
我又一次重新打包試試
出現新問題了
俗話說出現問題是好事,就怕 不出現問題就不好搞了
哎,仔細看看異常。 注意到了這句話
Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
媽呀 OOM 內存泄露了,說明程序的內存不夠出現問題,或者系統給程序分配的內存太低。
然後 我就一頓百度
dexOptions {
javaMaxHeapSize "4g"
}
啥意思呢 又是一頓百度丫
指定的最大大小,以字節爲單位的內存分配池。該值必須是1024的倍數大於2MB。追加字母k或K來表示千字節,m或M來表示兆字節。默認值是根據系統配置選擇在運行時。
加上
那就在打包試試吧
OK 成了
我的另一篇文章
Android 創建證書 或加固後更新簽名