我正在製作一個解析在線xml源的應用程序。我已經使用片段和標籤。Android ExceptionInitializerError無法在未調用Looper.prepare()的線程內創建處理程序
下面是代碼
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.listview_file, container, false);
allPress_listView = (ListView) v.findViewById(R.id.listView_for_all);
progressBar=(ProgressBar)v.findViewById(R.id.progress_bar);
return v;
/* return inflater.inflate(R.layout.afragment, container, false);
listView=(ListView)fi*/
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
/* ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,Cheese);
listView.setAdapter(adapter);*/
progressBar.setVisibility(View.VISIBLE);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try
{
//Thread.sleep(5000);
new DoSomeTask().execute();
}catch(Exception e){}
// myPd_ring.dismiss();
}
}).start();
}
問題是,當我運行有Android版本4.1.2,它不會崩潰運行在三星Galaxy迷你應用程序,但是當我運行在較低版本的應用程序,它崩潰。以下是錯誤。
E/AndroidRuntime(13631): FATAL EXCEPTION: Thread-164034
E/AndroidRuntime(13631): java.lang.ExceptionInInitializerError
E/AndroidRuntime(13631): at com.sl.sx.APR$1.run(AllReleases.java:74)
E/AndroidRuntime(13631): at java.lang.Thread.run(Thread.java:864)
E/AndroidRuntime(13631): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
E/AndroidRuntime(13631): at android.os.Handler.<init>(Handler.java:121)
E/AndroidRuntime(13631): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
E/AndroidRuntime(13631): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:607)
E/AndroidRuntime(13631): at android.os.AsyncTask.<clinit>(AsyncTask.java:190)
E/AndroidRuntime(13631): ... 2 more
我使用了下面的一行Handler mHandler = new Handler(Looper.getMainLooper());並且似乎問題已解決,請檢查較低版本 – user1740281
您不需要在此處創建任何處理程序。看到我更新的答案。 – Justas
謝謝你的回覆 – user1740281