最近、私はAsyncTaskの使用を開始しました。AsyncTask(doInBackgroundメソッド)の再開時のアクティビティ
私はこれをListActivity
(CatalogActivity)としました。それは何らかの種類のツリーロジックであるため、AsyncTask
を使ってリロードしました。リスト内の項目を選択するたびに、onPostExecute
の中でいくつかの計算を行い、進捗ダイアログをdoInBackground
に表示していますが、リストをリロードして処理を終了します。すべて正常に動作します。
私が最後のレベルに達した後、別のアクティビティ(LoginActivity)を開始します。この新しいアクティビティには、前述のリストアクティビティを開始する「戻る」メニューボタンがあります。それはアクティビティを開始し、doInBackground
メソッドでロード部分にヒットしたとき、私はこのファンキーな例外を取得します。本当に面白いのは、ロードメソッドでブレークポイントを設定して、すべての作業をうまくやっていけばいいのです!
私は行方不明ですか?ここで
は私CatalogActivityのdoInBackground
方法は、(エラーが発生した場合)である:ここでは
protected String doInBackground(String... params) {
catalogAdapter.mappingServicesCatalog.loadFromRml(new RIoConnectionManagerImpl(currentActivity.getApplicationContext()), params[0], null, 120000, 500000);
if (catalogAdapter.urlMapping.size() == 0)
{
catalogAdapter.urlMapping.add(params[0]);
}
else
{
if (catalogAdapter.urlMapping.get(catalogAdapter.urlMapping.size() - 1) != params[0])
{
catalogAdapter.urlMapping.add(params[0]);
}
}
return "";
}
はLogCatレコードは、次のとおりです。
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): FATAL EXCEPTION: AsyncTask #4
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): java.lang.RuntimeException: An error occured while executing doInBackground()
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at android.os.AsyncTask$3.done(AsyncTask.java:200)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.lang.Thread.run(Thread.java:1096)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): Caused by: java.lang.NullPointerException
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at si.realis.rmap.android.CatalogActivity$CatalogAdapter.access$1(CatalogActivity.java:35)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:197)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:1)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): ... 4 more
06-20 11:38:44.086: ERROR/WindowManager(22789): Activity si.realis.rmap.android.CatalogActivity has leaked window [email protected] that was originally added here
06-20 11:38:44.086: ERROR/WindowManager(22789): android.view.WindowLeaked: Activity si.realis.rmap.android.CatalogActivity has leaked window [email protected] that was originally added here
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.view.ViewRoot.<init>(ViewRoot.java:247)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.view.Window$LocalWindowManager.addView(Window.java:424)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.Dialog.show(Dialog.java:241)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ProgressDialog.show(ProgressDialog.java:107)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ProgressDialog.show(ProgressDialog.java:90)
06-20 11:38:44.086: ERROR/WindowManager(22789): at si.realis.rmap.android.CatalogActivity.loadRMLCatalog(CatalogActivity.java:135)
06-20 11:38:44.086: ERROR/WindowManager(22789): at si.realis.rmap.android.CatalogActivity$CatalogAdapter.Initialize(CatalogActivity.java:60)
06-20 11:38:44.086: ERROR/WindowManager(22789): at si.realis.rmap.android.CatalogActivity$CatalogAdapter.<init>(CatalogActivity.java:45)
06-20 11:38:44.086: ERROR/WindowManager(22789): at si.realis.rmap.android.CatalogActivity.onCreate(CatalogActivity.java:119)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.os.Looper.loop(Looper.java:123)
06-20 11:38:44.086: ERROR/WindowManager(22789): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-20 11:38:44.086: ERROR/WindowManager(22789): at java.lang.reflect.Method.invokeNative(Native Method)
06-20 11:38:44.086: ERROR/WindowManager(22789): at java.lang.reflect.Method.invoke(Method.java:521)
06-20 11:38:44.086: ERROR/WindowManager(22789): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
06-20 11:38:44.086: ERROR/WindowManager(22789): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
06-20 11:38:44.086: ERROR/WindowManager(22789): at dalvik.system.NativeStart.main(Native Method)
06-20 11:49:00.402: ERROR/WifiManager(22835): showApDialog
06-20 11:49:04.699: ERROR/HierarchicalStateMachine(2475): TetherMaster - unhandledMessage: msg.what=3
06-20 11:49:07.511: ERROR/WifiManager(22835): showApDialog
06-20 11:49:14.648: ERROR/WifiManager(22835): showApDialog
06-20 11:49:23.109: ERROR/libnetutils(2475): dhcp start cmd 11 : [dhcpcd:-ABK]
06-20 11:49:23.597: ERROR/HierarchicalStateMachine(2475): TetherMaster - unhandledMessage: msg.what=3
06-20 11:49:23.965: ERROR/gps_BRCM(2475): BrcmLbs_sync() return error.
NPEスタックトレースと整列するために、コード抜粋の行番号が必要です。si.realis.rmap.android.CatalogActivity $ CatalogAdapter.access $ 1(CatalogActivity.java:35) - どの行iあなたのスニペットは35行ですか? '.access $ 1()'は、合成アクセサメソッドを使ってプライベートメンバーをリクエストしていることを意味し、そのメンバーはnullと思われます。以前の活動を「開始」していると言いましたが、なぜBACKキーを押して、トップアクティビティを終了して前のアクティビティを再開させるのではないのですか? – Joe
あなたは正しいです。典型的なノブの間違い。私は活動とアダプターを持っています。アダプタコンストラクタでは、私はこの非同期タスクを開始したいくつかのコードを持っていました。同期時にアダプタをデバッグしたときに、実行時にエラーが発生しました。私はメソッドの中でアダプターコンストラクターからコードを削除しています。あなたの時間をありがとう!私の側で卑劣な作品... – no9