安装从单一来源

时间:2017-01-10 21:06:58

标签: android android-studio gradle apk

这是一个跟进问题。你不需要,但你可以read the first question

这是我的问题。我从一个源创建了两个apks。然后我在Google Play商店发布了两个APK,每个都是独立应用。假设一个应用程序名为Cat,另一个名为Dog。现在我遇到了一个问题,如果我在我的设备上安装Cat,那么我就无法安装Dog,反之亦然。知道为什么会这样吗? PlayStore的错误代码是“错误代码:-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在哪里完全

2 个答案:

答案 0 :(得分:1)

build.gradle

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

现在你可以做到,

$ gradle assembleDogDebug

$ gradle assembleCatDebug

答案 1 :(得分:0)

这会发生,因为两个APK都是针对同一个包。