2012-10-07 8 views
6

Ho creato un progetto Android configurato con Android-Maven-Plugin. Quando eseguo Android: distribuisci ed esegui il programma, SharedPreferences viene sempre inizializzato.android-maven-plug-in: metodo di distribuzione che non elimina SharedPreferences

Esiste un modo per distribuire il mio progetto in AVD senza eliminare lo spazio SharedPreferences?

P.S.

Uso Intellij IDEA e ho notato che il suo non elimina SharedPreferences. Tuttavia, dopo aver aggiunto scala support al mio progetto, IDE segnala "Troppi metodi: 112423; max è 65536" errore quando eseguo l'applicazione. Forse è dovuto alla mancanza di pre-elaborazione di proguard. Se c'è un modo per applicare proguard prima di eseguire l'app Android con il supporto Android IDEA Intellij, sarebbe una soluzione altrettanto efficace.

+0

Utilizzando standard di ADB distribuire senza eliminare le preferenze è dato da 'adb -s DEVICESERIALCODE installare l'applicazione -r. apk 'Sospetto che lo script di distribuzione debba avere questo parametro come switch di shell. Forse prova l'obiettivo 'android: run' –

+0

@pocorall hai risolto il problema con Scala e troppi metodi? Se è così - come hai fatto? Grazie in anticipo! – jdevelop

+0

@Marek Grazie per un indizio. Lo scaverò per questo! – pocorall

risposta

2

Penso che la tua app venga disinstallata prima di essere reinstallata di nuovo - questo ti farebbe perdere i tuoi valori di SharedPreferences. Questo può essere controllato con il parametro del plug-in Android Maven undeployBeforeDeploy.

ho solo cercato di creare un progetto Maven con il android-quickstart archetipo e ha scoperto che è automaticamente aggiunto la seguente riga alla mia POM:

<undeployBeforeDeploy>true</undeployBeforeDeploy> 

tenta di impostare questo per falso e riprova.

Se lo avete impostato su true, stampa questa linea nella console quando si esegue mvn android:deploy:

[INFO] Successfully uninstalled [package] from [device] 
+0

Ottimo! Funziona! – pocorall