【问题标题】:How to develop a production and beta versions of the same application for installing in the same device如何开发同一应用程序的生产版本和测试版本以安装在同一设备中
【发布时间】:2016-08-28 19:24:16
【问题描述】:

我正在开发一个 Android 应用程序,现在应该在为生产应用程序提供服务的同一环境中测试新功能。

我尝试在清单和 gradle 文件中创建一个新分支并将其重命名为 .testing,但我遇到了提供程序的问题,特别说明:

I/dalvikvm: Could not find method android.app.Fragment.setSharedElementEnterTransition, referenced from method com.corp.app.AccountFrag.access$super

所以我认为这不是方法。我希望应用程序安装在它的两个变体中(它们不一定需要共享数据)并且用户打开一个或另一个取决于是否需要在生产环境中测试新功能或更可靠、更稳定的版本需要运行。

以前有人处理过这个问题吗?我怀疑我需要研究口味,但我不知道。

提前感谢您的洞察力。

【问题讨论】:

  • 使用自定义的beta 构建类型,使用不同的applicationIdSuffix。

标签: android android-studio versions


【解决方案1】:

使用应该使用不同的构建类型进行测试。

在您的应用模块的 build.gradle 中,

android {

buildTypes {
        beta {
            applicationIdSuffix ".beta"
            versionNameSuffix "-beta"
            resValue "string", "app_name", "Beta App"
        }
        debug {

        }
        release {

        }
    }
}

在这里,我们为您的应用的 applicationId 添加了后缀“beta”。所以你可以有你的应用程序的 2 个变体。如果您想在单个移动设备中使用 2 个以上的变体,只需添加具有不同后缀的另一个变体。

要在 AndroidManifest 中使用包名称,请使用 ${applicationId} 而不是 com.example.dinesh。如果要在 java 类中使用包名,请使用BuildConfig.APPLICATION_ID。

在这种情况下不应使用产品风味。当您拥有两种类型的相同产品(例如普通应用程序和付费应用程序)时,将使用产品风味。要获得您的应用程序的测试版,您应该使用构建类型。

【讨论】:

  • 谢谢你的回答,但我不明白。我已将该代码添加到我的 build.gradle 文件中,但不知道如何编译和生成不同的版本。
  • 参考这里:medium.com/yplan-eng/…
  • 在Android Studio的左下角,你可以看到一个名为“Build Variants”的选项。点击它并选择您现在要运行的构建变体。在此处参考图片:cms-assets.tutsplus.com/uploads/users/798/posts/25005/image/…
  • 谢谢!我不知道 :) 是否可以同时创建两者?另外,我对应用程序的内容提供商有疑问,但我想这是一个不同的问题......
  • 请参阅此处stackoverflow.com/a/24850080/4586742,了解因构建变体而导致的 ContentProvider 问题。 @Graph
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-30
相关资源
最近更新 更多