我有一个 SDK 项目,我想测试当 isMinifyEnabled true 时 Proguard 是否会损坏某些文件,如果是的话,我尝试为发布版本配置 proguard,但遇到以下错误。我尝试在构建变体版本中运行此 SDK 项目,但收到如下错误:
运行“app”时出错应用程序无法安装: INSTALL_PARSE_FAILED_NO_CERTIFICATES
安装没有成功。无法安装该应用程序: INSTALL_PARSE_FAILED_NO_CERTIFICATES
当我在 Build Variant 中选择调试模式时,应用程序运行正常。
我不明白问题从何而来。我创建了生成签名的捆绑包 apk,但我不断收到相同的错误。我从这个链接尝试了一些东西,但我做不到:
什么是 INSTALL_PARSE_FAILED_NO_CERTIFICATES 错误?
我不知道为什么会出现此错误。这是我第一次遇到这个错误,我找不到解决方案。请帮忙。我已经分享了我认为可能需要的代码。如果需要额外的代码,我可以分享。
这是我的配置
build.gradle.kts(模块:app)
android {
namespace = "xxx"
compileSdk = 34
defaultConfig {
applicationId = "xxx"
minSdk = 21
targetSdk = 34
versionCode = 1
versionName = "1.0"
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
} ...
dependencies {
...
// implementation(project(":sdk")). // I commented this out to test the sdk library
implementation("com.xxx:1.0.0")
}
设置.gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// mavenLocal()
maven {
url =
uri("xxx")
credentials {
username = "xxx"
password = "xxx"
}
}
}
}
rootProject.name = "xxx"
rootProject.buildFileName = "build.gradle.kts"
//include(":app", ":sdk")
include(":app")
为了测试 ProGuard,您可以指定使用发布版本变体的默认
debug
符号密钥。这样,您可以防止本地测试时出现证书错误。像这样修改模块的 build.gradle
:
android {
//...
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
signingConfig signingConfigs.debug // sign release build with debug key
}
}
}
构建签名 APK 以在 Play 商店中发布时,不要忘记删除
signingConfig
行!
如果这适用于您的情况,请报告。