【问题标题】:Installing APKs created from single source安装从单一来源创建的 APK
【发布时间】: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


【解决方案1】:

在你的build.gradle

android.productFlavors {
  dog {
    applicationId "com.example.dog"
  }
  cat {
    applicationId "com.example.cat"
  }
}

现在你可以做,

$ gradle assembleDogDebug

$ gradle assembleCatDebug

等等

【讨论】:

  • 这是我通过终端呼叫时得到的信息:我输入 gradle assembleTrainingDebug 并从终端获取 bash: gradle: command not found
  • 用你通常调用的 gradle 替换 gradle。也许你使用包装器?也许你在 Windows 上?
【解决方案2】:

会发生这种情况是因为两个 APK 用于同一个包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2012-01-18
    • 2022-01-16
    • 1970-01-01
    • 2011-03-29
    • 2016-02-20
    相关资源
    最近更新 更多