0

ペイント フラグを使用して に取り消し線を設定するアプリがありTextViewます。このアプリケーションGPU Renderingは、Android 4.03 AVD で有効にするまで、エミュレーターで正常に動作します。

http://developer.android.com/tools/devices/emulator.html#acceleration

これを有効にすると、エミュレーター全体がロックされ、ペイント フラグを設定した瞬間に応答しなくなります。

TextView message = (TextView)v.findViewById(R.id.message);
message.setPaintFlags(day.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

これはListViewアダプター内にあり、ロード時に getView(...) メソッドを呼び出しsetPaintFlags(...)メソッドを 6 回ヒットし、6 回目以降にクラッシュします。

setPaintFlags(...)行をコメントアウトすると、クラッシュしません。これを電話にインストールすると、取り消し線が発生するとアプリがクラッシュします。

これをマニフェストに設定すると、エミュレーターの問題は解決しますが、電話ではまだクラッシュします。

<application android:hardwareAccelerated="false">

エミュレーターではなく、電話でこのクラッシュを経験したことのある人はいますか (ハードウェア アクセラレーションを使用しない限り)。

私は掘り下げて、他の同様の投稿Android emulator crashes;を見つけました。「emulator-arm.exe が応答を停止しました」が、私の場合、電話でもクラッシュします。

ソリューション偶然であることが判明し、加速とは無関係でした。LogCat でヌル ポインターが見つかりました。

4

1 に答える 1

1

上記のコメントによると

エミュレーターは問題なく、電話デバイスがクラッシュしているため、USB デバッグを使用して LogCat 出力を取得します。これは、クラッシュ/エラーの原因を絞り込むのに役立ちます。

于 2012-08-15T02:58:27.303 に答える