与其他开发人员一起更新现有的调试应用程序

时间:2019-01-22 10:15:28

标签: android android-studio debugging apk android-install-apk

我无法更新该应用的apk的调试版本:

  

安装失败,并显示消息无法完成会话:INSTALL_FAILED_UPDATE_INCOMPATIBLE:软件包[此处为我们的软件包]签名与先前安装的版本不匹配;忽略

两个开发人员。两台具有相同Android Studio版本(3.2.1)的PC。但是,当我尝试安装-有了它时,当第二个开发人员使用相同的代码(带有git)进行调试apk时,它将正常安装。 如果我进行apk-这是通过在另一台设备(测试仪)上更新第二个开发人员的版本而发生的错误。

我已经尝试过的:

  • 重新启动Android Studio。
  • 清洁并重建。
  • 使缓存无效并重新启动。
  • 构建apk并从设备安装。 (更新期间发生“应用程序未安装”错误)
  • 增加版本代码。

该设备是Android 6.0.1上的Lenovo TB-X103F平板电脑。

2 个答案:

答案 0 :(得分:0)

您需要使用相同的调试密钥库。您同事的密钥库将位于:

  • Windows:C:\Users\USERNAME\.android\debug.keystore
  • Linux / Mac:~/.android/debug.keystore

以下正确性从高到低依次为3种解决方案:

  1. 从长远来看,应该在项目内部 中对其进行配置,以便拥有该项目的任何人都可以签署调试版本。这是通过配置build.gradle like so来完成的。

  2. 您还可以在Android Studio中设置签名配置,因此以后不必依赖于复制他的文件。 Here is how to set it

  3. 您也可以只用您的同事替换该位置的调试密钥库,因此您使用的是相同的配置。

答案 1 :(得分:0)

不同的密钥库文件导致此警告。对于确切的解决方案;

-为每种构建类型创建自己的密钥库文件。

-在应用程序级别gradle文件中定义buildTypes和SigningConfigs    像这样:

signingConfigs {
    release {
        keyAlias '******'
        keyPassword '******'
        storeFile file('...\\release.jks')
        storePassword '******'
    }

    debug {
        keyAlias 'alias'
        keyPassword '******'
        storeFile file('...\\debug.jks')
        storePassword '******'
    }
}
buildTypes {
    release {
        lintOptions {
        }
        debuggable false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }

    debug {
        debuggable true
        minifyEnabled false
        signingConfig signingConfigs.debug
    }
}

注意!!!您可以将调试密钥库文件移动到项目文件夹(app文件夹将是一个不错的选择)。因此,两个开发人员都可以轻松拥有相同的密钥库。