Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES

通过android studio工具栏的Build -> Build Bundle(s)/APK(s) -> Build APK(s)得到一个app-release-unsigned.apk,安装此apk会报下面截图错误

按照提示是由于apk中没有签名文件,解压并比较该apk和正常可安装apk可以看出确实缺少CERT.RSA以及CERT.SF文件。

签名文件可以在java的bin目录通过keytool生成,也可以通过android studio自带的工具生成。

手动通过Build ->Generate Signed Bundle or APK ->APK 然后选择key password以及alis是可以正常安装,但是感觉有些麻烦。

问题就出在自动构建apk流程上,android官网提到,除非您明确定义发布 Build 的签名配置,否则 Gradle 不会为该 Build 的 APK 签名。要使用 Gradle 构建配置为您的发布 Build 类型手动配置签名,签名配置添加到模块级 build.gradle 文件中。

    ...
    android {
        ...
        defaultConfig {...}
        signingConfigs {
            release {
                storeFile file("myreleasekey.keystore")
                storePassword "password"
                keyAlias "MyReleaseKey"
                keyPassword "password"
            }
        }
        buildTypes {
            release {
                ...
                signingConfig signingConfigs.release
            }
        }
    }
    

关键点就在于buildTypes的release版本中知名签名配置:signingConfig signingConfigs.release

配置完签名信息后再次Build -> Build Bundle(s)/APK(s) -> Build APK(s)得到可以正常安装的app-release.apk。

猜你喜欢

转载自blog.csdn.net/u013795543/article/details/105879227