Что я хочу сделать и проблема
Я обновил свою Android Studio и Android Gradle Plugin до версии 3.0.1, а Gradle Wrapper — до версии 4.1 и теперь могу создавать и развертывать свой проект Android Gradle в варианте выпуска на устройстве через IDE.
- #P3# <блочная цитата> #P4# блочная цитата>
Проблема в том, что для модуля integration-test, использующего подключаемый модуль com.android.test, не существует варианта "выпуска".
- #P6# <блочная цитата> #P7# блочная цитата>
Подробнее о проекте (упрощенно)
Проект состоит из:
- a :библиотечный модуль
- модуль :app, который создает APK-файл приложения и использует модуль :library.
- an :integration-test module which:
- uses the "com.android.test" plugin
- зависит от модуля :app через targetProjectPath ':app' и targetVariant 'debug'
- и содержит инструментальные тесты для функций :app
- содержит только «основную» папку (тестовый плагин не поддерживает другие)
- Этот проект создан на основе схемы тестирования Android. здесь модуль :app ничего не знает о существовании модуля Integration-Test.
настройки .градле
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 (если это вообще имеет смысл)?
configurations
? 1) Тест интеграции не имеет зависимости :app/:library, он используетtargetProjectPath ':app'
иtargetVariant 'debug'
для установки зависимости, так как использует подключаемый модуль com.android.test. Модуль :app зависит от модуля :library. 2) Файл сборки :app не зависит от модуля :integration-test (ofc). - person hb0   schedule 28.11.2017implementation project(path path: ':library', configuration: 'default')
вместоcompile project(':library')
- person   schedule 28.11.2017implementation project
в :app для определения зависимости :library :app больше не будет собираться: ./app /build/intermediates/manifests/full/debug/AndroidManifest.xml не удается выполнить обработку (например, он не может найти: библиотечные ресурсы и т. д.) 4) Мне нужно создать пример проекта, когда я найти время - person hb0   schedule 28.11.2017com.android.test
. - person jenzz   schedule 20.03.2018