2014-06-12 45 views
0

美好的一天。Android - 通过Eclipse安装签名的apk

我有一个应用程序,我最近编写了一个代码,通过在我托管的服务器上获取更新的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

升级后,应用程序数据仍保留在您的应用程序中。 –

+0

好的,谢谢你的评论。解决了我的一半忧虑。 – Razgriz

回答

1

当你调试(或运行)Android将使用默认存储密钥签署您的应用程序,你可以改变它在Windows - >首选项 - > Android的 - >构建

自定义有更改调试密钥库调试密钥库

keystore change

+0

现在就试试这个。如果这有效,我会回去。 – Razgriz

+0

适用于Mac OSX用户。密钥库文件存储在Eclipse.app/Contents/Mac OS – Razgriz

+0

我将在笔记中进行编辑。 – Razgriz

0

是它可以安装签署的副本通过Eclipse的应用程序,你可以通过有效地仍然logcat中调试。 遵循这些步骤。 1.在eclipse中的项目列表中右键单击您的项目。 2.单击导出。然后选择导出Android应用程序 4.然后选择要导出的项目。 5.单击下一步。 6.然后给出签名密钥(密钥库文件)的路径。如果您没有任何设置,则通过选择该对话框上的新建密钥库单选按钮来创建新的密钥库文件。 7.输入并确认密码,然后单击下一步。 8.选择Keystore文件的别名。您在创建该文件时已经提供了该文件。 9.输入该别名的密码,然后单击下一步。 10.选择要导出apk文件的目标位置,然后单击完成。

构建应用程序可能需要几分钟时间。时间取决于您的应用程序大小。

+0

是的,这就是我做我的apk文件导出。我关心的是如何通过Eclipse将该apk安装到设备上。 – Razgriz

+0

使用adb命令进行安装。语法是adb install“你的apk文件的路径” –

+0

或者你可以将你的默认调试密钥更改为其他签名密钥。所以无论何时你的构建或运行你的应用程序,它都将使用该特定的签名密钥进行构建转到窗口 - >首选项 - > Android - >生成 - >编辑默认调试密钥库的路径 –

相关问题