android - 安装从单一来源创建的 APK

标签 android android-studio gradle apk

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

这是我的问题。我从一个来源创建了两个 apk。然后我在 Google Play Store 上发布了两个 APK,每个都是独立的应用程序。假设一个应用名为 Cat,另一个名为 Dog。现在我遇到了一个问题,如果我在我的设备上安装了 Cat,那么我就无法安装 Dog,反之亦然。知道为什么会这样吗?来自 PlayStore 的错误代码是“错误代码:-505”。

编辑:回复回复

我认为后缀会解决这个问题。我怎样才能解决这个问题并仍然为我的两个 APK 使用单一源代码?

productFlavors{
        training{
            applicationIdSuffix ".training"
            versionNameSuffix "-training"
        }
        production{
//            applicationIdSuffix ""
//            versionNameSuffix ""
        }
    }

编辑 2:

.training 风格添加额外的 list ,导致以下错误

/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 究竟会去哪里

最佳答案

在你的build.gradle中,

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

现在你可以做,

$ gradle assembleDogDebug

$ gradle assembleCatDebug

等等

关于android - 安装从单一来源创建的 APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578413/

相关文章:

android - FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar) 在 MainActivity 的 OnCreate 中返回 null

android - 徒手绘画不能正常工作?

android - Gradle 需要太多的构建

java - 如何将具有透明背景的多色图像导入android studio?

java - 安卓工作室 : Error Code 1: Gradle: Execution failed for task ':app:processDebugResources'

Android rxjava2 Flowable 与 compositedisposable

android - 如何实现activity和FragmentActivity的父方法?

java - Gradle 项目同步失败 - Android Studio Gradle Build 2.20

android - Android:出现错误:添加新依赖项后,任务 ':app:processDebugGoogleServices'的执行失败

javascript - React Native-与Android Studio编译 bundle