13

アプリの一部として、ApplicationPackageManager.getInstalledApplications を使用してデバイスにインストールされているアプリのリストを取得しますが、一部のユーザーについては、次のようなクラッシュ レポートが表示されます。

android.osBinderProxy.tranasact(ネイティブ メソッド) での TransactionTooLargeException

なぜ私がこれを手に入れるのか、誰でも考えられますか?

4

2 に答える 2

5

この例外は、通常の状況で再現するのが難しいものです。この例外は、データ転送時に IPC メモリが使い果たされた場合に発生します。これは、サービスがクライアントにデータを送信しようとしている場合と、クライアントがサービスにデータを送信している場合の両方で発生する可能性があります。ほとんどの場合、一部のユーザーが膨大な数のアプリケーションをインストールした可能性があり、その結果、データ サイズが 1MB (IPC バッファーのサイズ) を超えています。

残念ながら、この場合、あなたは何もうまくいかないでしょう。ただし、applyBatch などを実行している場合は、1 つの大きなトランザクションを複数の小さなトランザクションに分割できます。

このスレッドもご覧ください。

于 2012-11-05T17:32:35.933 に答える