2012-10-28 8 views
22

Ciągle pojawia się ten błąd po uruchomieniu aplikacji na karcie Galaxy Tab 2 (Samsung). Aplikacja, którą rozwijam, jest dość skomplikowana i bardzo trudno wyśledzić, skąd pochodzi ten błąd. Zacząłem więc rozbierać kawałek po kawałku mojej aplikacji i skończyło się na aplikacji mapowej, którą można znaleźć po hereNieprzyjęty wyjątek zgłoszony przez finalizatora: błąd interfejsu API Google lub błąd jądra Samsunga?

Po rozebraniu skończyło się na aplikacji, która jest tylko mapview bez overlayItem! więc po poradnik, aż część 1 pkt 9.

Oto aktywny 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; 
} 
} 

ja naprawdę nadepnął!

ktoś jakieś sugestie?

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

Czy jesteś absolutnie pewny, że nie zapomniałeś zamknąć 'Cursora' gdzieś w swojej aplikacji? – tolgap

+0

Wygląda na to, że jest to duplikat: http://stackoverflow.com/questions/12158228/uncaught-exception-thrown-by-finalizer – Phil

+0

Problem wydaje się być związany z konkretnym urządzeniem - lub z Androidem: uruchamianie tego w Samsung Galaxy SII z systemem Android 4.0.4 z tym samym kodem generuje tylko ostrzeżenie: 10-29 14: 19: 46.251: W/CursorWrapperInner (29221): Kursor sfinalizowany bez wcześniejszego zamknięcia() – WiZarD

Odpowiedz

0

przechwycony wyjątek przychodzi tylko wtedy, kiedy nie otaczają ten blok kodu wewnątrz próbować złapać według mnie jak ta linia „” CursorWrapper.close (CursorWrapper.java:49) „” powie plik i linia pliku, który tworzy problem, po prostu przejdź do wiersza tego konkretnego pliku i po prostu otoczyj go za pomocą funkcji catch catch. Myślę, że zamykasz swój niezajęty (pusty) kursor, na którym nadchodzi ten wyjątek. lub wykonaj jedną rzecz ... daj mi całą nazwę .java klasy, a także pełny błąd, który wyświetla. Na pewno rozwiążę :)

1

Problem nie jest dokładnie urządzeniem lub wersją systemu Android. Włączono tryb ścisły na urządzeniach wyświetlających błąd. Ponadto kursor należy zamknąć przed próbą zamknięcia bazy danych.

1

Spróbuj uruchomić swój kod w wątku tła. Dodatkowo zaktualizuj swój menedżer sdk jeszcze raz, dodatkowy czas w SDK.

Powiązane problemy