ここには本当にすごいものがあります。スピナーをクリックするか、メニュー項目を開くか、ロングクリックでコンテキストメニューを開くと、同じLogcatメッセージが表示されます。
08-02 21:20:57.264: E/ViewRootImpl(31835): sendUserActionEvent() mView == null
タグはViewRootImpl
で、メッセージはsendUserActionEvent() mView == null
です。これについてはウェブ上で何も役に立たなかった。 Androidソースを検索し、mView
への参照をいくつか見つけましたが、このログメッセージが印刷されているファイルを見つけることができませんでした。参考として、4.2.2またはAPI 17を実行しているSamsung Galaxy S4を使用しています。Android 4.3を実行しているNexus 7でデバッグする場合、同じメッセージは表示されません。何か案は?これはSamsung固有の問題ですか?
S4でも同じ問題に遭遇しました。 Galaxy Grand、HTC、Sony Xperiaでアプリをテストしましたが、s4でしか入手できません。アプリに関連していないため、無視できます。
Context.startActivity(addAccountIntent);を置き換えることで、Galaxy S4電話でこの問題を解決しました。 with startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT));
これは、2つの異なるアクティビティに同じIDの2つのボタンがあることに関係しています。場合によってはAndroid Studioが見つけられないことがあります。ボタンに新しいIDを与え、プロジェクトを再ビルドするだけです。
カーソルに関連するコードを変更した後も、同様の問題に直面します。
public boolean onContextItemSelected(MenuItem item)
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
Cursor c = (Cursor)adapter.getItem(info.position);
long id = c.getLong(...);
String tempCity = c.getString(...);
//c.close();
...
}
//c.close();をコメントアウトした後正常に動作しています。最後に試して更新してください。初期設定は次のとおりです。フラグメントにリストビューがあり、contextMenuを使用してリストからアイテムを削除しようとしています。
Galaxy TabとXperia Sで同じ問題が発生し、アンインストールしてから再度インストールすると消えてしまうようです。
この問題を突然引き起こすコードは次のとおりです。
public void unlockMainActivity() {
SharedPreferences prefs = getSharedPreferences("CALCULATOR_PREFS", 0);
boolean hasCode = prefs.getBoolean("HAS_CODE", false);
Context context = this.getApplicationContext();
Intent intent = null;
if (!hasCode) {
intent = new Intent(context, WellcomeActivity.class);
} else {
intent = new Intent(context, CalculatingActivity.class);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
(context).startActivity(intent);
}