2012-10-28 14 views
22

Continuo a ricevere questo errore quando avvio la mia app sulla mia galassia Tab 2 (Samsung). L'app che sto sviluppando è piuttosto complicata ed è molto difficile rintracciare da dove proviene questo errore. Così ho iniziato a spogliare pezzo per pezzo la mia app e ho finito con un'applicazione mapview come potete trovare hereEccezione non rilevata generata dal finalizzatore: bug dell'API di Google o bug del kernel Samsung?

Dopo la rimozione ho finito con un'applicazione che è solo una mappa senza un oggetto di sovrapposizione! Quindi seguendo il tutorial fino Parte 1 punto 9.

Ecco il MapView attività:

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

sto veramente calpestato!

qualcuno qualche suggerimento?

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

Sei assolutamente sicuro di non aver dimenticato di chiudere un 'Cursore' da qualche parte nella tua app? – tolgap

+0

Sembra essere un duplicato di questo: http://stackoverflow.com/questions/12158228/uncaught-exception-thrown-by-finalizer – Phil

+0

Il problema sembra essere dispositivo -o-- versione specifica per Android: Esecuzione su un Samsung Galaxy SII con Android 4.0.4 che esegue lo stesso codice genera solo un avviso: 10-29 14: 19: 46.251: W/CursorWrapperInner (29221): Cursore finalizzato senza chiusura precedente() – WiZarD

risposta

0

eccezione non rilevata viene solo quando non si è circondi quel blocco di codice all'interno di provare cattura secondo me di linea come questa "" CursorWrapper.close (CursorWrapper.java:49) "" vi dirà il file e linea di file che sta creando problemi quindi basta andare su quella riga di quel particolare file e circondarla semplicemente con try catch. Penso che tu stia chiudendo il tuo cursore vuoto (vuoto), perché questa eccezione sta arrivando. o fai una cosa .... dammi tutto il tuo nome di classe .java e anche l'errore completo che viene visualizzato. risolverò sicuramente :)

1

Il problema non è esattamente il dispositivo o la versione specifica di Android. Hai attivato la modalità rigorosa sui dispositivi che visualizzano l'errore. Inoltre, il tuo cursore deve essere chiuso prima di tentare di chiudere il database.

1

Prova a eseguire il codice in thread in background. Inoltre aggiorna il tuo sdk manager ancora una volta, i tempi extra in SDK.