使用没有发布版本

时间:2017-11-28 10:52:07

标签: android android-studio android-testing android-gradle-3.0 gradle-android-test-plugi

我想做什么&问题

我将Android Studio和Android Gradle Plugin更新为3.0.1,将Gradle Wrapper更新为4.1并且可以构建&通过IDE在设备上部署我的Android Gradle项目。

  • 但是,会显示以下“Gradle Sync”警告消息:

      

    警告:模块'库'选择了变体'release',但模块['integration-test']依赖于变体'debug'

  • 这里的问题是,使用'com.android.test'的集成测试模块没有'release'变体 插件

  • 如果我只是尝试将发布版本类型(buildTypes { release {} })添加到我收到的:integration-test模块中:

      

    错误:VariantInputs初始化时没有合并清单报告:DEFAULT

项目详情(简化)

该项目包括:

  • :图书馆模块
  • :app模块,用于构建应用的apk并使用:library module
  • :集成测试模块,其中:
    • 使用“com.android.test”插件
    • 依赖于:app模块通过targetProjectPath':app'& targetVariant'debug'
    • 并包含:app functions
    • 的检测测试
    • 仅包含'main'文件夹(测试插件不支持其他文件夹)
  • 此项目是在Android Test Blueprint之后构建的,因为目标在于:app模块对集成测试模块的存在一无所知。

settings.gradle

include :library
include :app
include :integration-test

应用程序/的build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

publishNonDefault true

defaultConfig {
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion

    applicationId "xxxxx"

    testInstrumentationRunner rootProject.ext.testInstrumentationRunner

    multiDexEnabled true
    vectorDrawables.useSupportLibrary = true
}

signingConfigs {
    release {
        keyAlias 'xxxx'
    }
}

buildTypes {
    debug {
        testCoverageEnabled = true
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}

// This is needed by the integration-test module (i.e. com.android.test : integration test)
// in order for targetVariant to work without a flavor
publishNonDefault true

testOptions {
    unitTests {
        // Required so that logging methods do not throw not mocked exceptions in junit tests.
        returnDefaultValues = true
    }
}

compileOptions {
    sourceCompatibility rootProject.ext.sourceCompatibility
    targetCompatibility rootProject.ext.targetCompatibility
}
}

dependencies {
// Local dependencies
compile project(':library')
// i cleaned up all the other dependencies as they wouldn't help here
}

问题

有没有人使用com.android.test插件获得(集成 - )测试模块 Android Gradle Plugin 3.0.1 一起运行而没有获得“不发布”变种“错误?如果是这样,我怎样才能避免这个错误,或者如何将这样的发布版本添加到基于android测试插件的模块中(如果这有意义的话)?

1 个答案:

答案 0 :(得分:1)

我也得到了

  

VariantInputs初始化时没有关于DEFAULT的合并清单报告。

然后,我完全按照https://github.com/googlesamples/android-testing-templates/tree/master/AndroidTestingBlueprint

中概述的内容进行操作。

当我从测试模块的Gradle文件的“ buildTypes”块中删除release buildType时,错误消失了。 从这个:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

buildTypes {
}