2012-10-07 3 views
6

Zbudowałem androidowy projekt, który skonfigurowałem z android-maven-plugin. Kiedy uruchamiam Androida: wdrażaj i uruchamiaj program, SharedPreferences zawsze jest inicjowane.Android-maven-plugin: wdróż metodę, która nie usuwa SharedPreferences

Czy istnieje sposób wdrożenia mojego projektu do programu AVD bez usuwania magazynu SharedPreferences?

P.S.

Używam Intellij IDEA i zauważyłem, że jego nie usuwa SharedPreferences. Jednak po dodaniu scala support do mojego projektu, IDE zgłasza "Zbyt wiele metod: 112423; max to 65536" błąd podczas uruchamiania aplikacji. Być może wynika to z braku preprocesingu progu. Jeśli istnieje sposób na zastosowanie proguard przed uruchomieniem aplikacji na Androida z obsługą Intellij IDEA Android, byłoby to równie skuteczne rozwiązanie.

+0

stosując standardowe ADB wdrożyć bez usuwania preferencji jest podana przez 'adb -s -r DEVICESERIALCODE zainstalować aplikację. apk 'Podejrzewam, że twój skrypt wdrażania powinien mieć ten parametr jako przełącznik powłoki. Może spróbuj gola 'android: uruchom' –

+0

@pocorall czy rozwiązałeś problem ze Scala i zbyt wieloma metodami? Jeśli tak - jak to zrobiłeś? Z góry dziękuję! – jdevelop

+0

@Marek Dzięki za wskazówkę. Będę kopać o tym! – pocorall

Odpowiedz

2

Wydaje mi się, że twoja aplikacja została odinstalowana przed ponowną reinstalacją - to spowodowałoby utratę wartości SharedPreferences. Można to kontrolować za pomocą parametru wtyczki Android Maven undeployBeforeDeploy.

Ja tylko starałem się stworzyć projekt Maven z android-quickstart archetypu i jest on automatycznie dodany następujący wiersz do mojego POM:

<undeployBeforeDeploy>true</undeployBeforeDeploy> 

spróbuj ustawić na false i spróbuj ponownie.

Jeśli masz to ustawione na true, drukuje tej linii w konsoli po uruchomieniu mvn android:deploy:

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

Świetnie! Działa! – pocorall