【问题标题】:How can I set the minSdk just for androidTest?如何仅为 androidTest 设置 minSdk?
【发布时间】:2017-11-14 07:12:10
【问题描述】:

我想将minSdk 增加到21 只为androidTest。这是否可能在不引入产品风味的情况下实现?

注意:使用 Android Gradle Plugin 3.0,我的应用的 minSdk 需要为16

【问题讨论】:

  • 希望您尝试了我的解决方案,它有效吗?如果您能/想回来提供一些反馈,非常感谢您

标签: android android-gradle-plugin


【解决方案1】:

你可以试试这个post 建议在你运行测试的文件夹中创建一个新的 Manifest 添加属性

使用-sdk

根据documentation

还表示在 gradle 文件中使用一些 if 语句在 gradle 中播放,但它们很难看。无论如何,您可以将其用作 B 计划解决方案:

if (gradle.startParameter.taskNames.contains(":app:assembleDebug")) {
        minSdkVersion 21
    }else{
        minSdkVersion 14
    }

【讨论】:

    【解决方案2】:

    您可以在项目的 gradle 文件或清单中添加 minSdk。添加 minSdk 时,意味着您指定了您设计和测试应用程序的最低 sdk 级别。您还想添加 targetSdk。您可能感兴趣的谷歌支持链接https://developer.android.com/training/basics/supporting-devices/platforms.html

    在清单中它看起来像

    <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> ... </manifest>

    在你的 gradle 文件中

    defaultConfig {
        applicationId "com.project.projectName"
        minSdkVersion 14
        targetSdkVersion 21
    }
    

    【讨论】:

    • minSdk 必须是 16。我想为androidTest 进行多重索引,所以我需要minSdk = 21 - 但仅限于`androidTest
    • 您不能只为测试添加 minSdk,您可以为整个项目(包括测试)添加它。最重要的是,您可以在 21 岁之前进行多重索引
    • 您不能对您的测试 apk 进行多重索引。只是你的应用apk
    • 您提出了错误的问题并朝着错误的方向前进。如果您知道不能在测试 apk 中使用 multidex,为什么要尝试为测试添加 multidex?我真的不在乎,无论哪种方式,您的测试中的 minSdk 都不能与您的应用程序不同。您似乎面临着不同的问题,并且试图在错误的领域找到解决方案。
    • 主 apk 中的方法不计入测试 apk 中的方法。您的主 apk 可以 multidex,但不能是测试 apk (androidTest)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2012-03-25
    • 2019-12-14
    • 1970-01-01
    相关资源
    最近更新 更多