Robotium にこの呼び出しを行うと、次のようになります。
solo.clickOnMenuItem("Sync");
時々、有名なエラー トレースが表示されます。
09-19 22:27:23.647: エラー/WindowManager(20662): android.view.WindowLeaked: アクティビティ test.com.activities.ListActivity がウィンドウ com.android.internal.policy.impl.PhoneWindow$DecorView@461d4660 をリークしました。最初にここに追加されました 09-19 22:27:23.647: ERROR/WindowManager(20662): at android.view.ViewRoot.(ViewRoot.java:253) 09-19 22:27:23.647: ERROR/WindowManager(20662): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 09-19 22:27:23.647: エラー/WindowManager(20662): android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 09-19 22: 27:23.647: エラー/WindowManager(20662): android.view.Window$LocalWindowManager.addView(Window.java:424) 09-19 22:27:23.647: エラー/WindowManager(20662): android.app.Dialog .show(Dialog.java:241) 09-19 22:27:23.647: エラー/WindowManager(20662): テスト時。com.activities.ListActivity$Sincronizacao.onPreExecute(ListActivity.java:272) 09-19 22:27:23.647: エラー/WindowManager(20662): android.os.AsyncTask.execute(AsyncTask.java:391) 09-19 22:27:23.647: エラー/WindowManager(20662): test.com.activities.ListActivity.onOptionsItemSelected(ListActivity.java:224) 09-19 22:27:23.647: エラー/WindowManager(20662): android.app で.Activity.onOptionsItemSelected(Activity.java:2313) 09-19 22:27:23.647: エラー/WindowManager(20662): android.app.Activity.onMenuItemSelected(Activity.java:2201) 09-19 22:27:23.647 : エラー/WindowManager(20662): com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:740) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android で。 internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) 09-19 22:27:23.647:エラー/WindowManager(20662): com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android.internal .view.menu.IconMenuView.invokeItem(IconMenuView.java:538) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java: 142) 09-19 22:27:23.647: エラー/WindowManager(20662): android.view.View$PerformClick.run(View.java:8818) 09-19 22:27:23.647: エラー/WindowManager(20662) : android.os.Handler.handleCallback(Handler.java:587) 09-19 22:27:23.647: エラー/WindowManager(20662): android.os.Handler.dispatchMessage(Handler.java:92) 09-19 で22:27:23.647: エラー/WindowManager(20662): android.os.Looper.loop(Looper.java:143) 09-19 22:27:23.647:エラー/WindowManager(20662): android.app.ActivityThread.main(ActivityThread.java:4701) 09-19 22:27:23.647: エラー/WindowManager(20662): java.lang.reflect.Method.invokeNative(Nativeメソッド) 09-19 22:27:23.647: エラー/WindowManager(20662): java.lang.reflect.Method.invoke(Method.java:521) 09-19 22:27:23.647: エラー/WindowManager(20662) : com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android.internal.os.ZygoteInit.main で(ZygoteInit.java:618) 09-19 22:27:23.647: エラー/WindowManager(20662): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-19 22:27:24.209: エラー/AndroidRuntime(20662) : 致命的な例外: メイン 09-19 22:27:24.209: エラー/AndroidRuntime(20662): java.lang.IllegalArgumentException:ビューがウィンドウ マネージャーに接続されていません 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355) 09-19 22:27:24.209: エラー/AndroidRuntime( 20662): android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.view.Window$LocalWindowManager.removeView(Window.java:432) ) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.app.Dialog.dismissDialog(Dialog.java:278) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): Android で.app.Dialog.access$000(Dialog.java:71) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.app.Dialog$1.run(Dialog.java:111) 09-19 22 :27:24.209: エラー/AndroidRuntime(20662): android.app.Dialog.dismiss(Dialog.java:268) 09-19 22:27:24.209:エラー/AndroidRuntime (20662): android.app.Dialog.cancel (Dialog.java:951) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): test.com.activities.ListActivity$Sincronizacao.onPostExecute で(ListActivity.java:331) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): android.os.AsyncTask.finish(AsyncTask.java:417) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): android.os.AsyncTask.access$300(AsyncTask.java:127) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java で:429) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.os.Handler.dispatchMessage(Handler.java:99) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.os.Looper.loop(Looper.java:143) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.app.ActivityThread で。main(ActivityThread.java:4701) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): java.lang.reflect.Method.invoke(Method.java:521) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit$MethodAndArgsCaller で。実行 (ZygoteInit.java:860) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-19 22:27: 24.209: エラー/AndroidRuntime(20662): dalvik.system.NativeStart.main(ネイティブ メソッド) で521) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-19 22:27:24.209: エラー/ AndroidRuntime(20662): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): dalvik.system.NativeStart.main(Native方法)521) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-19 22:27:24.209: エラー/ AndroidRuntime(20662): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): dalvik.system.NativeStart.main(Native方法)
しかし、このようにネイティブに呼び出しを行うと (メニュー項目は 3 番目の項目です):
mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_ENTER);
テストを何度実行してもエラーは発生しません。なぜ私はその振る舞いをしているのですか?