2017-02-13 6 views
0

В настоящее время я сталкиваюсь с проблемой, которую я не могу решить. Из-за ошибки я должен установить нижние целиdkVersion на 25 (с максимальной возможной целевой версией на момент публикации)увеличить targetSdkVersion для androidTest

Решение этого решения может занять много времени, поэтому я хочу установить более низкую targetSdkVersion для производственных построек и 25 только для tesing (вариация androidTest).

Я знаю, что могу сделать это, добавив новый аромат, но я хотел бы избежать этого.

Мой вопрос в том, как я могу установить другую targetSdkVersion только для androidTest, чем для остальных вариантов/конфигураций?

+0

изменение в файле 'manifest'. –

+0

Почему бы вам избежать использования ароматов? Я считаю, что это рекомендуемый способ работы с несколькими конфигурациями для одной и той же базы кода. В противном случае вам нужно будет вручную переключать файлы градиентов перед каждым прогоном. Я считаю, что ароматы точно используются для этого случая. – Acapulco

+0

Созданный androidTest уже генерирует отдельный apk со своим собственным minSdkVersion и targetdkVersion. Я не вижу необходимости использовать новый аромат только для этого. –

ответ

1

Видимо, нет никакого способа, чтобы достичь этого. Я, наконец, создать новый аромат следующим образом:

android { 
    def defaultTargetSdk = 24 
    def androidTestTargetSdk = 25 

    defaultConfig { 
     targetSdkVersion defaultTargetSdk 
    } 

    productFlavors { 
     target24 { 
     } 
     target25 { 
      targetSdkVersion androidTestTargetSdk 
     } 
    } 

    // Remove target25Release as it's used only for testing purpose and wont be not needed on production. 
    variantFilter { variant -> 
     def buildTypeName = variant.buildType.name 
     def flavorName = variant.getFlavors().get(0).name 

     if (buildTypeName.equals('release') && flavorName.startsWith('target25')) { 
      variant.setIgnore(true); 
     } 
    } 
} 

Как я уже нужен вариант с отладкой buildType и предназначаться 24 Я только удалить мою вариацию target25Release, но если бы не нуждались в этом я мог бы прописана следующим для установки цели 25 на все варианты отладки:

android { 
    def defaultTargetSdk = 24 
    def androidTestTargetSdk = 25 

    defaultConfig { 
     targetSdkVersion defaultTargetSdk 
    } 

    buildTypes { 
     debug {  
      defaultConfig { 
       minSdkVersion androidTestTargetSdk 
      } 
     } 
    } 
} 
0

Добавьте следующий код для minimum sdk level и taargeted sdk level в файле manifest следующим образом,

<?xml version="1.0" encoding="utf-8"?> 

<manifest> 

<uses-sdk android:minSdkVersion="3" /> //replace 3 with required minimum version 
<uses-sdk android:targetSdkVersion="8" /> //replace 8 with required target version 

</manifest> 
+0

Я боюсь, что это не сработало для меня. Я уже устанавливаю my targetSdkVersion по градиенту в качестве моей целевой по умолчанию, и если я напишу его в файле манифеста в каталоге androidTest, он переопределит настройку градуса снова по умолчанию –