2014-10-08 83 views
1

我有一个使用Eclipse Android插件开发的旧Android应用程序,并试图将其转换为新的Android Studio。自动转换是一个可悲的失败,所以我手动转换它。Android:应用程序升级而不是新版本

现在的问题是,现在,当我运行我的新应用程序时,它将作为新的安装启动,而不是替换旧的应用程序。我的猜测是有一个ID需要从旧安装中复制,但我完全丧失了在哪里可以找到它。

可能是问题根源的一件事是,在旧的Eclipse IDE中,您为代码指定了与项目名称分开的包名称。但在Android Studio中,包名直接来自项目名称。当我最初创建项目时,我拼错了包名,所以包和项目名称不一样。我已经有我的新版本的应用程序在旧名称的相同名称和(拼错)包名称下运行。

回答

1

我觉得有需要,以配合您的旧应用程序两件事情:

  1. 包名称在清单中设置。这可能是你的问题,因为它很高兴地安装你的新应用程序,而不会抱怨签名不匹配身份。请注意,在Android Studio中,清单中的包名称实际上并不重要,因为它会被您放入build.gradle文件中的任何包名称覆盖。

  2. 签名身份。要安装在同一应用程序的另一个副本上,它需要使用相同的密钥进行签名。从IDE运行时,它使用的是debug.keystore,它很可能与Eclipse中的旧版本不匹配。如果您确实需要从旧安装中继续,那么您可以找到Eclipse正在使用的旧debug.keystore,并将其复制到新项目中。修改build.gradle指向这个其他debug.keystore。

+0

您的推荐#1接近了,我在发布问题后不久就想出了它(与它战斗了几个小时后)。这是在build.gradle中设置的“applicationID”。它被设置为软件包名称的非拼写错误版本。 #2不是问题,因为这仍在开发中。我尚未签署APK发送至Google商店。 – 2014-10-08 18:15:24

+0

啊,是的,我认为他们最近在Android Studio的最新更新中将'applicationName'更改为'applicationID'。 – Tenfour04 2014-10-08 18:17:04

1

如果更改包名是您的问题,可以很容易地修复。

您可以在Android Studio中对包名进行重构(或手动更改文件夹名并更新引用)。

然后,您必须在您的发行版中检查您的applicationId(并在需要时调试)配置文件build.gradle

希望它有帮助。

+0

是否尝试过获得大部分事件,但没有找到它们。我解决了它,请参阅上面的解决方案的注释。 – 2014-10-08 18:17:44

相关问题