终结者引发的未捕获异常:Google API bug或三星内核bug?
问题描述:
在我的galaxy Tab 2(Samsung)上启动我的应用程序时,我不断收到此错误。 我正在开发的应用程序非常复杂,并且很难找出这个错误来自哪里。所以我开始逐段剥离我的应用程序,我最终只用了一个mapview应用程序,因为你可以找到here终结者引发的未捕获异常:Google API bug或三星内核bug?
剥离后我结束了一个应用程序,只是一个没有overlayItem的mapview! 因此,按照教程,直到第1点9
这里的MapView的活动:
package com.****.googlemapstutorial;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends MapActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
我真的踩!
有人有什么建议吗?
The error:
10-28 21:09:22.872: E/System(16840): Uncaught exception thrown by finalizer
10-28 21:09:22.872: E/System(16840): java.lang.IllegalStateException: Binder has been finalized!
10-28 21:09:22.872: E/System(16840): at android.os.BinderProxy.transact(Native Method)
10-28 21:09:22.872: E/System(16840): at android.database.BulkCursorProxy.close(BulkCursorNative.java:288)
10-28 21:09:22.872: E/System(16840): at android.database.BulkCursorToCursorAdaptor.close(BulkCursorToCursorAdaptor.java:133)
10-28 21:09:22.872: E/System(16840): at android.database.CursorWrapper.close(CursorWrapper.java:49)
10-28 21:09:22.872: E/System(16840): at android.content.ContentResolver$CursorWrapperInner.close(ContentResolver.java:1591)
10-28 21:09:22.872: E/System(16840): at android.content.ContentResolver$CursorWrapperInner.finalize(ContentResolver.java:1604)
10-28 21:09:22.872: E/System(16840): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:182)
10-28 21:09:22.872: E/System(16840): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
10-28 21:09:22.872: E/System(16840): at java.lang.Thread.run(Thread.java:856)
答
未捕获的异常只来当你没有包围的代码块内尝试捕捉 根据我这样的“行” CursorWrapper.close(CursorWrapper.java:49)“”会告诉你该文件正在创建问题的文件的一行,因此只需转到该特定文件的那一行,并用try catch将其包围即可。我想你正在关闭你的未占用(空)光标,因为这个例外即将到来。或者做一件事情....给我所有.java类名称以及显示的完整错误。我一定会解决:)
答
该问题不完全是设备或Android版本特定。您在显示错误的设备上启用了严格模式。另外,在尝试关闭数据库之前,需要关闭光标。
答
尝试在后台线程中运行您的代码。 Plus再次更新您的SDK经理,额外的时间在SDK中。
答
看起来游标可能仍然处于打开状态,无论是在此代码文件中还是在应用程序中的其他位置。也许这个链接“Android list view with simplecursor adapter crashes application”将有一定的帮助。
你确定你没有忘记在你的应用程序的某个地方关闭一个'Cursor'? – tolgap
似乎是这样的一个副本:http://*.com/questions/12158228/uncaught-exception-thrown-by-finalizer – Phil
该问题似乎是设备 - 或 - Android版本特定:在三星银河SII运行android 4.0.4运行相同的代码只会产生一个警告:10-29 14:19:46.251:W/CursorWrapperInner(29221):光标没有事先关闭完成() – WiZarD