16

им пытаются использовать пользовательский интерфейс Automator в моем проекте с minSdkVersion 9 и, конечно, это не работает, потому что цель API 18.UI Automator в проекте с minSdkVersion 9

Так Android Студия бросает мне эту ошибку:

Error:(5, 5) uses-sdk:minSdkVersion 9 cannot be smaller than version 18 declared in library ~/app/build/intermediates/exploded-aar/com.android.support.test.uiautomator/uiautomator-v18/2.1.1/AndroidManifest.xml 

Suggestion: use tools:overrideLibrary="android.support.test.uiautomator.v18" to force usage 

Error:Execution failed for task ':app:processDebugAndroidTestManifest'. 
> java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 18 declared in library ~/app/build/intermediates/exploded-aar/com.android.support.test.uiautomator/uiautomator-v18/2.1.1/AndroidManifest.xml 

    Suggestion: use tools:overrideLibrary="android.support.test.uiautomator.v18" to force usage 

Я добавил в свой манифест тег <uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18" />, но ошибка продолжает показывать, я делаю что-то неправильно?

+0

Можете ли вы разместить файл build.gradle? –

ответ

0

Вам необходимо создать приложение с помощью minSdkVersion 18, однако вы можете переключиться на эспрессо.

+1

Есть ли способ указать 'minSdkVersion' 18 * только * для приложения androidTest для приложения? –

+0

Ничего, о чем я знаю. Я думаю, вам нужно будет модифицировать задачи, сгенерированные градиентом, и многого, чтобы заставить его работать. –

+1

В соответствии со вкусом spec http://tools.android.com/tech-docs/new-build-system/build-system-concepts вы можете создать вкус с надлежащей minSdkVersion и построить свои тесты с этим ароматом –

37

Если вы используете gradle, вы можете добавить еще один Проявите к типу сборки androidTest, который будет слит и не повлияет на ваши обычные сборки выпуска/отладки.

Добавить app/src/androidTest/AndroidManifest.xml в свой проект:

<manifest 
    package="${applicationId}.test" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"> 

    <uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18"/> 
</manifest> 

Это слияние манифесте с нормальной, не требуя, чтобы изменить minSdk. Учтите, что это, вероятно, вылетать, если вы попробуйте запустить UI Instrumentation тесты на < 18. SDK

При добавлении дополнительных разрешений на вы также можете просто добавить разрешения для тестов, как внешнее запоминающее устройство, если вы регулярно не нужны их в вашем приложении. Они также будут доступны для ваших отладочных сборников.

+0

Да, это работает, спасибо! – validcat

+0

Есть ли какие-либо оговорки, использующие этот подход? Благодаря! –

+0

@NeonWarge никто, о котором я мог думать, кроме упомянутых вещей –