在发布版本上安装 INSTALL_PARSE_FAILED_NO_CERTIFICATES

Bar*_*chs 6 android code-signing android-studio

我有一个奇怪的问题,我的调试版本工作正常,但在签名并生成应用程序包并将其上传到 Play 商店后,应用程序立即崩溃(我在具有应用程序商店版本的手机上运行 LogCat我发现它与 AndroidX ConstraintLayout 有关,但无法重现)。release我认为和版本之间存在一些差异debug,因此我开始调试我的发布版本。

当我这样做时,Android Studio 无法安装 APK,并出现以下错误:

安装失败,并显示消息 INSTALL_PARSE_FAILED_NO_CERTIFICATES:程序包 /data/app/vmdl1900556551.tmp/base.apk 在 AndroidManifest.xml 条目中没有证书。通过卸载现有版本的 apk(如果存在)然后重新安装,可能可以解决此问题。

警告:卸载将删除应用程序数据!

您想卸载现有的应用程序吗?

我的 中有签名配置app.gradle,它使用与我签名和发布的应用程序相同的数据:

android {
    signingConfigs {
        defaultConfig {
            keyAlias 'solaredge-notifier'
            keyPassword '******'
            storeFile file('/path/to/KeyStore.jks')
            storePassword '*****'
        }
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "nl.friesoft.solaredgenotifier"
        minSdkVersion 23
        targetSdkVersion 27
        versionCode 2
        versionName "1.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            debuggable true
            signingConfig signingConfigs.defaultConfig
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在有点迷失了(而且,坦率地说,有点生气,因为我在 Play 商店上发布了一个崩溃的应用程序)。

如果您想查看实时应用程序,请访问:https://play.google.com/store/apps/details? id=nl.friesoft.solaredgenotifier&hl=en

小智 2

在(重新)生成您的证书之前,请尝试以下操作:

\n\n

您的设备的Android SDK版本是否在minSdkVersion和compileSdkVersion指定的范围内?

\n\n

至少您设备的 SDK 版本必须符合 minSdkVersion。

\n\n

尝试一下。根据我的经验,当我部署到 SDK 版本超出 minSdkVersion 和compileSdkVersion 范围的设备时,我收到此错误:\n“无法安装应用程序:INSTALL_PARSE_FAILED_NO_CERTIFICATES”。

\n\n

我修改了范围以包含我设备的 SDK 版本,瞧\xc3\xa0!

\n