我无法使用新的清单合并进行构建。Gradle抱怨我的测试用的是minSdkVersion="14"
,而Espresso用的是minSdkVersion="8"
。我实际上没有清单我的测试文件夹(androidTest
),但看起来清单合并正在临时文件夹中创建一个。
由合并创建的临时清单:
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
android:targetPackage="mypackage.android"
android:handleProfiling="false"
android:functionalTest="false"
android:label="Tests for mypackage.android"/>
</manifest>
错误和调试日志:
Merging uses-sdk with lower test manifest:5:5
Merging application with lower test manifest:7:5
Merging result:ERROR
{PATH_TO_PROJECT}buildintermediatesexploded-aarcom.jakewharton.espressoespresso1.1-r2AndroidManifest.xml:0:0 Error:
uses-sdk:minSdkVersion 8 cannot be smaller than version 14 declared in library test manifest
:MyApp:processDebugTestManifest FAILED
:MyApp:processDebugTestManifest (Thread[Daemon Thread 6,5,main]) completed. Took 0.107 secs.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':MyApp:processDebugTestManifest'.
> java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 14 declared in library test manifest
知道我能做些什么来解决这个问题,还是它是一个错误与清单合并?
尝试将这行添加到您的build.gradle
android {
useOldManifestMerger true
...
}
此问题将在此票据的CL被释放时解决:
https://code.google.com/p/android/issues/detail?id=71147