2012-10-24 10 views
6

Ho riscontrato che l'app Mono per Android si arresta in modo anomalo ad ogni avvio dopo che l'utente è passato a Impostazioni-> App-> MyApp e seleziona "Cancella dati". Ho creato un nuovo progetto con l'applicazione "Hello World" di Mono per Android, e questa app mostra esattamente lo stesso comportamento, il che mi fa presumere che ciò avvenga da qualche parte nello stack mono fuori dal mio controllo. Se controllo con logcat adb, questo sono le linee interessate che posso trovare:Mono per l'app Android si arresta all'avvio dopo la cancellazione dei dati nelle impostazioni dell'app

I/ActivityManager( 185): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=Test_App.Test_App/test_app.Activity1} from pid 386 
D/dalvikvm(18358): Late-enabling CheckJNI 
I/dalvikvm(18358): Turning on JNI app bug workarounds for target SDK version 8... 
I/ActivityManager( 185): Start proc Test_App.Test_App for activity Test_App.Test_App/test_app.Activity1: pid=18358 uid=10074 gids={3003} 
D/dalvikvm( 119): GC_EXPLICIT freed 37K, 3% free 12553K/12867K, paused 1ms+2ms 
I/ActivityThread(18358): Pub Test_App.Test_App.mono.MonoRuntimeProvider.__mono_init__: mono.MonoRuntimeProvider 
D/dalvikvm(18358): Trying to load lib /data/data/Test_App.Test_App/lib/libmonodroid.so 0x4168ba48 
D/dalvikvm(18358): Added shared lib /data/data/Test_App.Test_App/lib/libmonodroid.so 0x4168ba48 
D/dalvikvm( 119): GC_EXPLICIT freed <1K, 3% free 12553K/12867K, paused 2ms+2ms 
E/mono (18358): WARNING: The runtime version supported by this application is unavailable. 
E/mono (18358): Using default runtime: v2.0.50727 
D/OpenGLRenderer( 386): Flushing caches (mode 1) 
D/dalvikvm( 119): GC_EXPLICIT freed <1K, 3% free 12553K/12867K, paused 1ms+1ms 
I/mono (18358): Stacktrace: 
I/mono (18358): 
D/OpenGLRenderer( 386): Flushing caches (mode 0) 
D/Zygote ( 119): Process 18358 terminated by signal (11) 
I/ActivityManager( 185): Process Test_App.Test_App (pid 18358) has died. 
W/ActivityManager( 185): Force removing ActivityRecord{41a85018 Test_App.Test_App/test_app.Activity1}: app died, no saved state 

Qualcuno ha lo stesso comportamento nei suoi applicazioni mono? C'è una soluzione?

risposta

6

Gestito per risolvere la mia stessa domanda. Sotto le impostazioni del progetto dovevo andare alla scheda "Mono per Android Build", selezionare la configurazione Release e creare il linker "Collega tutti gli assembly" invece di "Solo gli assembly Link SDK". Risolto questo problema per tentativi ed errori, ma cosa si può fare ..

1

Un'altra soluzione che ho trovato è disattivare l'uso del "Runtime condiviso" durante la creazione dell'app.

In Visual Studio questo è sulla vostra impostazioni del progetto Android, Opzioni Android> scheda Packaging> Proprietà imballaggio> Usa Shared Runtime (deselezionare)

Rende l'APK risultante un po 'più grande, ma significa che gli utenti possono fare "Clear Dati "nella tua app, riavvialo e funzionerà senza crash!

0

Utilizzo di Visual Studio 2015 con un'app Xamarin Form su un LG G3 Vigor come dispositivo di test. Tutto ha funzionato bene per molti mesi. Stavo facendo test sulla documentazione delle prestazioni, quindi ho deciso di fare ClearCache sulla mia app in Impostazioni -> Generali -> App su Vigor. Dopo che è stato fatto il Vigor avrebbe causato un errore di runtime quando avrei distribuito la mia app sul dispositivo. L'app funzionerebbe bene su altri dispositivi, emulatori e simulatori iOS.

Ho provato altri suggerimenti elencati su questo post. Ho finito per fare un reset di fabbrica sul dispositivo. Dopo aver sbloccato la modalità sviluppatore e riconnettersi al mio computer, ora è compilato e ha eseguito nuovamente l'app.

Penso che una persona possa provare a revocare le autorizzazioni di debug usb e re-autorizzare se non volessero effettuare un reset di fabbrica, per vedere se le cose funzioneranno di nuovo. Ciò potrebbe creare un diverso percorso di connessione tra VS2015 e il dispositivo che reimposta qualsiasi problema causato dal ripristino della cache. Se tutto il resto fallisce, un reset di fabbrica lo ha fatto per me. Spero che ti aiuti nel caso in cui questo accada a qualcuno.

Problemi correlati