EditText
にいくつか追加ClickableSpan
したいAsynkTask
。
これには次のコードを使用しました。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
et = (EditText)findViewById(R.id.et);
...
class makeLinksAsync extends AsyncTask<String, String, EditText> {
private EditText buffer;
protected EditText doInBackground(String... texts) {
buffer = new EditText(context); // here is an error
SpannableString spanStr = new SpannableString("word");
...
buffer.append(spanStr);
return buffer;
}
protected void onPostExecute(EditText linkedText) {
ed.setText(linkedText.getText());
}
}
}
このコードをさまざまなエミュレーターと Android2.3 を搭載した自分のデバイスでテストしたところ、すべて問題なく、このコードはうまく機能しました。しかし、APK を GooglePlay にアップロードした後、上記の行にバグがあるクラッシュ レポートをいくつか取得しました。ログレポートは次のとおりです。
java.lang.RuntimeException: An error occured while executing doInBackground()
...
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
...
at lubart.apps.dictionary.DictionaryActivity$makeLinksAsync.doInBackground(DictionaryActivity.java:2233) // this line is mentioned in code
また、この問題はすべてのデバイスで発生するわけではなく、一部のユーザーはすべてが正常に機能すると報告しています。
このエラーについて教えてください。