2012-10-07 12 views
6

Ich baute ein Android-Projekt, das mit Android-Maven-Plugin eingerichtet. Wenn ich android: austrage und das Programm ausführe, werden SharedPreferences immer initialisiert.android-maven-plugin: deploy-Methode, die SharedPreferences nicht löscht

Gibt es eine Möglichkeit, mein Projekt auf AVD zu verteilen, ohne SharedPreferences-Speicher zu löschen?

P.S.

Ich benutze Intellij IDEA und bemerkte, dass seine SharedPreferences nicht löscht. Nachdem ich scala support10 für mein Projekt hinzugefügt habe, meldet die IDE jedoch "Too many methods: 112423; max ist 65536" beim Ausführen der Anwendung. Vielleicht liegt es an mangelnder Vorverarbeitung. Wenn es eine Möglichkeit gibt, Proguard anzuwenden, bevor Sie die Android-App mit Intellij IDEA android-Unterstützung ausführen, wäre dies eine ebenso effektive Lösung.

+0

Verwendung von Standard-ADB bereitstellen, ohne Einstellungen zu löschen, indem 'adb gegeben es DEVICESERIALCODE -r Anwendung installieren. apk' Ich vermute, dass dein Bereitstellungsskript diesen Parameter als Shell-Schalter haben sollte. Vielleicht versuchen Sie Tor 'android: run' –

+0

@pocorall haben Sie das Problem mit Scala und zu viele Methoden lösen? Wenn ja - wie hast du das gemacht? Danke im Voraus! – jdevelop

+0

@Marek Danke für einen Hinweis. Ich werde darüber nachdenken! – pocorall

Antwort

2

Ich denke, Ihre App wird deinstalliert, bevor sie erneut installiert wird - dies würde dazu führen, dass Sie Ihre SharedPreferences-Werte verlieren. Dies kann mit dem Android Maven Plugin-Parameter undeployBeforeDeploy gesteuert werden.

Ich habe gerade versucht, ein Maven-Projekt mit dem android-quickstart Urbild zu erstellen und festgestellt, dass es automatisch die folgende Zeile in meinem POM hinzugefügt:

<undeployBeforeDeploy>true</undeployBeforeDeploy> 

Versuchen Sie, diese wieder und versuchen, auf false gesetzt.

Wenn Sie es auf true gesetzt haben, druckt es diese Zeile in der Konsole, wenn Sie mvn android:deploy laufen:

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

Großartig! Es funktioniert! – pocorall