• スポンサードリンク

ObjectAnimatorのフレーム更新メソッドがUIスレッドから呼ばれない端末がある

こないだ入れたFirebaseのクラッシュレポートみてて気がついた。
ObjectAnimatorのフレーム更新メソッドがUIスレッドから呼ばれない端末がある(。・_・。)

でもってObjectAnimatorから呼ばれるView#setAlphaとかで

でこけよる。何でやねん(●`ε´●)

ObjectAnimatorを生成しとるのはView#OnClickeListener内やからUIスレッドやねんけど。
どないせぇっちゅうねん。さきちゃんは中年やねん(*ノω・*)テヘ 歳ほどには老けてないけど(^o^)v

端末の製造元は…Rockchip…なんだとぉーお前が悪いんじゃぁー(●`ε´●)
と言うかそもそもRockchipの端末じゃUVCカメラは使えんのじゃぁー(※知ってる限りは)
黃レンジャーが好きだったんじゃぁ^^

どうしたもんかなぁ(。・_・。)

2016/12/20追記:
クラッシュのスタックトレースを更新した。どこにも自分のコードは出てこうへんねん(●`ε´●)
スタックトレースを見るとHandlerThreadからLooperを呼び出してそこからChoreographer経由で一定時間毎にアニメーション用の処理が行われているみたい。というかHandlerThreadから呼び出されてるってのがそもそもおかしい気がするけど、もしかするとUIスレッド自体がHandlerThreadになっとるんかもしれん。もしかすると呼び出し元がLooperを持って無ければ中で勝手にHandlerThreadを生成するんかもしれん。
なので、原因はようわからんし手元の端末だと起こらんので効果があるかどうかも判らんけど、ObjectAnimatorに関係しそうな全ての呼び出しをUIスレッドのHandler経由で呼び出すようにしてみた。元々View#OnClickeListener内から呼んどるからUIスレッドなんやけどな。

« »

  • スポンサードリンク

コメントを残す

%d人のブロガーが「いいね」をつけました。