以下例外意味着什么; 我该怎么解决?
这是代码:
Toast toast = Toast.makeText(mContext, "Something", Toast.LENGTH_SHORT);
Run Code Online (Sandbox Code Playgroud)
这是例外:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:121)
at android.widget.Toast.<init>(Toast.java:68)
at android.widget.Toast.makeText(Toast.java:231)
Run Code Online (Sandbox Code Playgroud) 我有以下代码
class OverlayTask extends AsyncTask<Void, Void, Void> {
@Override
public void onPreExecute() {
if (sites != null) {
myMapView.getOverlays().remove(sites);
myMapView.invalidate();
sites = null;
}
}
@Override
public Void doInBackground(Void... unused) {
grabShipsWithLocation();
return (null);
}
@Override
public void onPostExecute(Void unused) {
myMapView.getOverlays().add(sites);
myMapView.invalidate();
isLoading = false;
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎在一些测试设备上工作正常,但我发现在开发控制台上出现了很多错误.我似乎无法弄清楚为什么以及在哪里放置这个Looper.prepare().需要它吗?
java.lang.ExceptionInInitializerError
at com.test.appname.FinderMain$1.gotLocation(FinderMain.java:286)
at com.test.appname.MyLocation$GetLastLocation.run(MyLocation.java:89)
at java.util.Timer$TimerImpl.run(Timer.java:289)
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:121)
at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
at android.os.AsyncTask.<clinit>(AsyncTask.java:152)
Run Code Online (Sandbox Code Playgroud)
按要求MyLocation.java
class GetLastLocation …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我打电话给相机应用程序拍照.在我的活动结果中,我启动了一个asynctask来处理照片.(旋转并上传照片).
我还想从图库中删除照片.为此,我在asynctask中执行以下代码.
// Delete image from gallery
String[] imageColumns = { MediaStore.Images.Media._ID };
String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
String imageWhere = MediaStore.Images.Media._ID + ">?";
String[] imageArguments = { Integer.toString(captureLastID) };
CursorLoader imageLoader = new CursorLoader(mActivity);
imageLoader.setUri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
imageLoader.setProjection(imageColumns);
imageLoader.setSelection(imageWhere);
imageLoader.setSelectionArgs(imageArguments);
imageLoader.setSortOrder(imageOrderBy);
Cursor imageCursor = imageLoader.loadInBackground();
if (imageCursor.getCount() > 0) {
while (imageCursor.moveToNext()) {
int id = imageCursor.getInt(imageCursor
.getColumnIndex(MediaStore.Images.Media._ID));
ContentResolver cr = mActivity.getContentResolver();
cr.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
MediaStore.Images.Media._ID + "=?",
new String[] { Long.toString(id) });
break;
}
}
imageCursor.close();
Run Code Online (Sandbox Code Playgroud)
我收到了错误
无法在未调用Looper.prepare的线程内创建处理程序
是什么导致此错误,我该如何解决?它是否与我调用loadInBackground这一事实有关,而asynctask已经在后台运行了?
这是我的logcat: …
现在我正在开发一个使用异步任务Iam面对这个错误,任何人都有这个想法..
10-03 19:04:55.662: E/AndroidRuntime(1547): FATAL EXCEPTION: Thread-11
10-03 19:04:55.662: E/AndroidRuntime(1547): java.lang.ExceptionInInitializerError
10-03 19:04:55.662: E/AndroidRuntime(1547): at com.cc.accounts.ChatAccountsFragment.Gtalk_logInComplete(ChatAccountsFragment.java:579)
10-03 19:04:55.662: E/AndroidRuntime(1547): at com.cc.xmpp.GmailXmppClient.Login(GmailXmppClient.java:92)
10-03 19:04:55.662: E/AndroidRuntime(1547): at com.cc.accounts.ChatAccountsFragment$5.run(ChatAccountsFragment.java:482)
10-03 19:04:55.662: E/AndroidRuntime(1547): at java.lang.Thread.run(Thread.java:1096)
10-03 19:04:55.662: E/AndroidRuntime(1547): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
10-03 19:04:55.662: E/AndroidRuntime(1547): at android.os.Handler.<init>(Handler.java:121)
10-03 19:04:55.662: E/AndroidRuntime(1547): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
10-03 19:04:55.662: E/AndroidRuntime(1547): at android.os.AsyncTask$InternalHandler.<init>(AsyncTask.java:421)
10-03 19:04:55.662: E/AndroidRuntime(1547): at android.os.AsyncTask.<clinit>(AsyncTask.java:152)
10-03 19:04:55.662: E/AndroidRuntime(1547): ... 4 more
Run Code Online (Sandbox Code Playgroud)
这是异步任务
public void Gtalk_logInComplete(String Uname, XMPPConnection _connection) …Run Code Online (Sandbox Code Playgroud)