2017-01-24 12 views
0

時々TransactionTooLargeExceptiononSaveInstanceStateになることがあります。だから私は私のBundleのサイズが大きすぎることが原因であると仮定しています。私はそれを最小限にするのに必要な量のおおよその見積もりを得ることができるように正確な/約サイズを記録したいと思います。バンドルのサイズをMbでどのように記録するのですか?

は今、私はそのサイズを見つけることができる唯一の方法はTransactionTooLargeExceptionがプロセスでのDexを利用するには

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 1026104) 
D/AndroidRuntime: Shutting down VM 
I/art: Compiler allocated 6MB to compile void com.example.ExampleModel.writeToParcel(android.os.Parcel, int) 
E/UncaughtException: java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1026104 bytes 
+0

あなたは間違った方向から問題を攻撃していると思います。なぜあなたは保存すべきたくさんのデータを持っていますか?バンドルのサイズは、ほとんどKを越えることはほとんどありません。ファイル(画像など)やデータベース(パースされた大規模なネットワーク応答など)に格納されるものを保存している可能性があります。 –

+0

私は全くあなたに同意します。そのサイズを記録する方法があれば、私はちょうど興味がありました。 –

+0

それをパーセルに書き込んでパーセルをマーシャリングすると、内容のバイト[]が返されます。そのサイズを取る。 –

答えて

0

please click here for reference

でスローされたとき、あなたはあなたのGradleを変更する必要があります.propertiesファイルとorg.gradle.jvmargsプロパティを使用して、2 GB以上に、1ギガビットによってのGradleデーモンVMに割り当てられるメモリの量を増やす:

org.gradle.jvmargs = -Xmx2048m

関連する問題