使用minSdkVersion 9的项目中的UI Automator

时间:2015-08-03 17:56:43

标签: android testing android-manifest uiautomator android-uiautomator

我试图在minSdkVersion 9的项目中使用UI Automator,当然它不起作用,因为它的目标是API 18。

所以Android Studio会抛出这个错误:

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" />中添加了标签,但错误一直显示,我做错了什么?

3 个答案:

答案 0 :(得分:38)

如果您使用gradle,则可以将另一个 Manifest添加到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。请注意,如果您尝试在sdk&lt;上运行UI Instrumentation测试,这可能会崩溃。 18。

通过向debug/AndroidManifest添加其他权限,您还可以添加测试权限,例如外部存储空间,如果您不经常在应用中使用它们。它们虽然也可用于您的调试版本。

答案 1 :(得分:0)

您需要使用minSdkVersion 18构建您的应用,但您仍然可以切换到浓缩咖啡。

答案 2 :(得分:0)

这对我有用

<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" />