これは、私のアプリケーションでよく見られるエラーです。このエラーの理由を知っている人はいますか?
エラーには次の 2 行があります。
consumer ~ Error -1 pinning ashmem fd 69
' ~ Failed to consume input event. status=-2147483648
最近、私が取り組んでいるアプリで同様のバグを修正しました。問題は、ファイル記述子を 2 回閉じていたバグのあるネイティブ コードにありました。これは、最初に Close メソッドで閉じてから、ファイル記述子が既に閉じられているかどうかを確認せずに、デストラクタで再度 Close を呼び出していたことを意味します。
ネイティブopen
関数は、ファイル記述子として、最初の空き最小番号を返します。したがって、上記のバグは、1 回のクローズと 2 回目の呼び出しの間で再利用されるクローズ記述子でした。ほとんどの場合、この記述子はパーセルで使用されていました。
このバグの解決策を探しているときに、このエラーが 2 つのケースで発生することがわかりました。
これをデバッグするのは簡単ではなく、再現するのも難しく、ネイティブ コードを使用しないと、問題を理解するのがさらに難しくなります。
ネイティブ コードがない場合、閉じられたウィンドウと通信しようとすると、このバグが発生する可能性があります。ダイアログを閉じていないが、それを所有するアクティビティを閉じたように。そのようなケースは経験したことがありませんが、ヒントとして追加します。