我试图在我的 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
我在我的 list 中添加了标签 <uses-sdk tools:overrideLibrary="android.support.test.uiautomator.v18" />
但是错误一直显示,我做错了什么?
最佳答案
如果您使用 gradle,您可以将 another 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>
这会将 list 与您的普通 list 合并,而无需更改您的 minSdk
。请注意,如果您尝试在 sdk < 18 上运行 UI Instrumentation Tests,这可能会崩溃。
通过向 debug/AndroidManifest
添加额外的权限,如果您的应用程序中不经常需要它们,您也可以只为您的测试添加权限,例如外部存储。虽然它们也可用于您的调试版本。
关于android - 带有 minSdkVersion 9 的项目中的 UI Automator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31793724/