android - test - uiautomator2
UI Automator en proyecto con minSdkVersion 9 (3)
Estoy intentando usar UI Automator en mi proyecto con minSdkVersion 9 y, por supuesto, no funciona porque está orientado a la API 18.
Así que Android Studio me lanza este error:
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
Agregué a mi Manifiesto la etiqueta <uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18" />
pero el error sigue apareciendo, ¿estoy haciendo algo mal?
Debe crear su aplicación con minSdkVersion 18, sin embargo, aún puede cambiar a espresso.
Esto funciono para mi
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="${applicationId}.test">
<uses-sdk tools:overrideLibrary="android_libs.ub_uiautomator" />
Si usa gradle, puede agregar otro Manifest al tipo de compilación androidTest
que se fusionará y no afectará a sus compilaciones de versión / depuración normales.
Agregue app/src/androidTest/AndroidManifest.xml
a su proyecto:
<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>
Esto fusionará el manifiesto con el normal, sin necesidad de cambiar tu minSdk
. Tenga en cuenta que esto probablemente se bloqueará si intenta ejecutar pruebas de instrumentación de UI en sdk <18.
Al agregar permisos adicionales a debug/AndroidManifest
, también puede agregar permisos para sus pruebas, como almacenamiento externo, si no las necesita regularmente en su aplicación. Aunque también estarán disponibles para sus versiones de depuración.