为什么 Android Studio 创建的 APK 文件与 Eclipse 创建的 APK 不同?

Why the APK file created by Android Studio is different from APK created by Eclipse?

我在 Eclipse 中开发了一个 Android 应用程序并使用了 Eclipse 生成的 APK,现在我已经转移到 Android Studio,因为它是官方的 IDE Android 发展。我已将项目导入 Android Studio 并获得了 APK 文件。

问题是,如果我在安装了旧 APK(由 Eclipse 生成)的设备中安装新的 APK(由 Android Studio 生成),那么设备正在显示消息 "An existing package by same name with a conflicting signature is already installed".

我的问题是,如果两个 APK 文件都是从同一台 PC 开发和生成的,那么为什么这两个文件不同?

Android studio 具有 gradle 功能,该功能构建 apk 的方式与 eclipse 不同,这就是不同签名的原因。

我假设您的 PC 上有两个 Android SDK,这意味着您的 PC 上可能有两个不同的默认密钥库(或者您可能重新安装了 SDK,因此默认密钥库已更改)。

您可以在此处找到您的密钥库:

OS X and Linux: ~/.android/

Windows Vista and Windows 7: C:\Users\your_user_name\.android\

如果您为您的应用程序生成特定的密钥库,则不会发生此问题。以后无论你使用哪台PC,生成的APK总能覆盖之前的版本(意思是之前的版本都是用同一个keystore签名的,版本号更小)。