【发布时间】:2023-03-17 06:26:01
【问题描述】:
这是一个后续问题。你不需要,但你可以read the first question。
这是我的问题。我从一个来源创建了两个 apk。然后我在 Google Play Store 上发布了这两个 APK,每个都是独立的应用程序。假设一款应用名为 Cat,一款名为 Dog。现在我遇到了一个问题,如果我在我的设备上安装 Cat,那么我无法安装 Dog,反之亦然。知道为什么会这样吗? PlayStore 中的错误代码是 `Error Code: -505)。
编辑:回复回复
我认为后缀会解决这个问题。我怎样才能解决这个问题,并且仍然为我的两个 APK 使用一个源代码?
productFlavors{
training{
applicationIdSuffix ".training"
versionNameSuffix "-training"
}
production{
// applicationIdSuffix ""
// versionNameSuffix ""
}
}
编辑 2:
为 .training 风格添加额外的清单,导致以下错误
/Users/myname/StudioProjects/appname/app/src/training/AndroidManifest.xml Error:
Overlay manifest:package attribute declared at AndroidManifest.xml:2:11-50 value=(com.compname.appname.training)
has a different value=(com.compname.appname.training) declared in main manifest at AndroidManifest.xml:2:11-41
Suggestion: remove the overlay declaration at AndroidManifest.xml and place it in the build.gradle:
flavorName {
applicationId = "com.compname.appname.training"
}
这个flavorName 究竟会去哪里?
【问题讨论】:
-
包名很重要,它们必须是唯一的,android OS 识别的是包名,而不是应用程序名:)
-
查看我添加的编辑。
-
附带说明:我认为 Google Play 不允许使用相同的包名称两次?在 Google Play 上,软件包名称不同。一个有后缀,一个没有?可能是证书哈希问题吗?我的意思是 google-services.json 文件中的 certificate_hash?
-
我猜这不是 google play 处理的实际包名 :) 不太确定,但我认为是这样。
-
当我尝试使用
adb install从终端安装两者时,我也会得到Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
标签: android android-studio gradle apk