Android-maven-plugin: 不删除 SharedPreferences 的部署方法

6
我建立了一个使用android-maven-plugin的Android项目。当我执行android:deploy并运行程序时,SharedPreferences总是被初始化。
有没有一种方法可以在不删除SharedPreferences存储的情况下将我的项目部署到AVD?
附言:
我使用Intellij IDEA,并注意到其native android run/debug support不会删除SharedPreferences。但是,在我为项目添加scala支持后,IDE在运行应用程序时报告“方法过多:112423;最大值为65536”错误。这可能是由于缺乏proguard预处理所致。如果有一种方法可以在使用Intellij IDEA android支持运行android应用程序之前应用proguard,则它将是同样有效的解决方案。

使用标准ADB部署而不删除首选项的命令是adb -s DEVICESERIALCODE install -r APPLICATION.apk。我怀疑您的部署脚本应该将此参数作为shell开关。也许尝试一下目标android:run - Marek Sebera
@pocorall,你解决了Scala和太多方法的问题吗?如果是这样的话,你是怎么做到的呢?提前感谢! - jdevelop
@Marek 谢谢你的提示。我会去深入了解它! - pocorall
@jdevelop,不幸的是,我没有解决这个问题 :( - pocorall
1个回答

2
我认为您的应用在重新安装之前被卸载了 - 这会导致您丢失 SharedPreferences 值。这可以通过 Android Maven 插件参数 undeployBeforeDeploy 来控制。
我刚试着使用 android-quickstart原型创建了一个 Maven 项目,发现它自动将以下行添加到我的 POM 中:
<undeployBeforeDeploy>true</undeployBeforeDeploy>

尝试将其设置为false,然后再试一次。
如果你已将其设置为true,在运行mvn android:deploy时会在控制台打印出这行内容:
[INFO] Successfully uninstalled [package] from [device]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接