2010-10-21 93 views
0

我的應用程序可能爲特定目的啓動子活動。當該活動結束時,我在onActivityResult中獲得結果。這些結果然後在隨後的onResume中處理。這包含一個setContentView,並啓動一個放置ProgressDialog的AsyncTask。ResourceNotFound佈局通貨膨脹

當啓動正常方式時,這一切都可以正常工作,這是在應用程序啓動並運行後通過用戶請求(即菜單選擇)啓動的。但是,在某些情況下,我需要在應用程序啓動時正確執行此操作,因此我從我的onCreate開始執行此序列。然後會發生的是,在任何隱式調用佈局壓縮器的o/s調用中,我都會遇到致命的ResourceNotFound錯誤。我用setContentView通過在我的onCreate方法中預先膨脹視圖來解決這個問題,但AsyncTask的onPreExecute在ProgressDialog.show()上仍然失敗,因爲它「找不到」Android自己的progress_dialog.xml!

任何人都知道這裏發生了什麼?

我懷疑這是發生在主要活動甚至有機會顯示其屏幕之前發生的時間。這些調用都是在主UI線程上進行的,但在這些情況下,可能還沒有在o/s內完成。

+0

發佈一些代碼,我們不需要你的代碼的描述。 – Falmarri 2010-10-21 20:49:46

+0

還請包含錯誤消息的完整堆棧跟蹤。 – 2010-10-21 21:33:50

回答

1

作爲一個收尾,問題結果與我在文章中描述的完全無關。原來,這是因爲盲目地使用了一些在線論壇上發佈的代碼,這些代碼展示瞭如何獲取和使用AssetManager。麻煩的是,他在代碼塊末尾放了「assMan.close()」。那麼,這會關閉整個活動的資產管理器,並且不能再訪問資源!

花了一段時間才找到它,因爲它不是我通過自己的理解所做的。