美好的一天。
我有一个应用程序,我最近编写了一个代码,通过在我托管的服务器上获取更新的apk文件,以编程方式进行更新。我通过在Android Manifest文件中将版本代码更改为版本2并将版本名称更改为1.0.1来制作更新的apk。我还在第一个活动中放置了一个textView,以了解它是否是更新的应用程序。但是,我在更新时遇到的问题是,当Android尝试安装下载的apk文件时,我收到An existing package by the same name with a conflicting signature is already installed
错误。由于错误是关于冲突的签名,我猜想每当我从Eclipse安装应用程序到我的设备(Nexus 7)时,应用程序都没有签名。我做的是我导出了应用程序版本1的签名副本,将其移动到我的Nexus 7并安装。从那个签名的应用程序版本,我试图更新,我没有遇到任何问题。
然而,这个过程根本没有效率,因为如果我想调试我的应用程序以查看数据库或sharedPreferences之间存储的数据是否在应用程序更新之间持续存在,那么我必须做的是导出我的应用程序,复制到平板电脑,然后安装。这不允许我有效地使用logCat - 因为会话过滤器不起作用。我查看日志的唯一方法是通过All Messages
类别查找我的标记。
所以,我的主要问题是:有没有办法通过Eclipse安装应用程序的签名副本,这样你仍然可以通过LogCat有效地调试?
第二个问题:当应用程序升级版本时,私有应用程序数据(如SQLite数据库和SharedPreferences)会发生什么?它们被删除了吗?
答案 0 :(得分:1)
当您调试(或运行)时,Android将使用默认商店密钥对您的应用程序进行签名,您可以在Windows上更改它 - >偏好 - > Android - >构建
使用自定义调试密钥库
更改调试密钥库
答案 1 :(得分:0)
是可以通过Eclipse安装签名的应用程序副本,您仍然可以通过LogCat有效地进行调试。 跟着这些步骤。 1.在eclipse中从项目列表中右键单击您的项目。 2.单击“导出”。 3.然后选择Export Android Application 4.然后选择要导出的项目。 5.单击下一步。 6.然后给出签名密钥的路径(密钥库文件)。如果您没有,则通过选择该对话框上的“创建新密钥库”单选按钮来创建新的密钥库文件。 7.输入并确认密码,然后单击下一步。 8.选择密钥库文件的别名。您在创建该文件时提供的内容。 9.输入该别名的密码,然后单击“下一步”。 10.选择要导出apk文件的目标,然后单击“完成”。
构建应用可能需要几分钟时间。时间取决于您的应用程序大小。