在发行版上INSTALL_PARSE_FAILED_NO_CERTIFICATES

时间:2019-02-17 18:22:39

标签: android android-studio code-signing

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

尽管如此,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
        }
    }
}

我现在在这里迷失了一些(坦白说,因为我已经在Play商店中发布了崩溃的应用,所以有点生气)。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

尝试一下。从我的经验来看,当我部署到minSdkVersion和compileSdkVersion范围以外的SDK版本的设备时,出现以下错误: “无法安装该应用程序:INSTALL_PARSE_FAILED_NO_CERTIFICATES”。

我修改了范围,以包括设备的SDK版本和版本!

答案 1 :(得分:0)

生成签名APK的步骤:

1 –构建版本未签名的APK。

2 –使用命令提示符压缩未签名的APK。

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

3 –通过命令提示符使用应用签名者使用Sonim私钥对APK签名。

apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk

4 –在设备中安装签名的APK。