终结者引发的未捕获异常: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) 
+3

你确定你没有忘记在你的应用程序的某个地方关闭一个'Cursor'? – tolgap

+0

似乎是这样的一个副本:http://*.com/questions/12158228/uncaught-exception-thrown-by-finalizer – Phil

+0

该问题似乎是设备 - 或 - Android版本特定:在三星银河SII运行android 4.0.4运行相同的代码只会产生一个警告:10-29 14:19:46.251:W/CursorWrapperInner(29221):光标没有事先关闭完成() – WiZarD

未捕获的异常只来当你没有包围的代码块内尝试捕捉 根据我这样的“行” CursorWrapper.close(CursorWrapper.java:49)“”会告诉你该文件正在创建问题的文件的一行,因此只需转到该特定文件的那一行,并用try catch将其包围即可。我想你正在关闭你的未占用(空)光标,因为这个例外即将到来。或者做一件事情....给我所有.java类名称以及显示的完整错误。我一定会解决:)

该问题不完全是设备或Android版本特定。您在显示错误的设备上启用了严格模式。另外,在尝试关闭数据库之前,需要关闭光标。

尝试在后台线程中运行您的代码。 Plus再次更新您的SDK经理,额外的时间在SDK中。

看起来游标可能仍然处于打开状态,无论是在此代码文件中还是在应用程序中的其他位置。也许这个链接“Android list view with simplecursor adapter crashes application”将有一定的帮助。