有没有办法AndroidManifest.xml为gradle测试应用程序指定其他文件?我需要它来为我的单元测试指定其他权限和活动.
UPD:
我试图instrumnetTest在build.gradle文件中添加部分,但它没有帮助,我仍然得到Unable to resolve activity for: Intent错误
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest {
manifest.srcFile 'src/instrumentTest/AndroidManifest.xml'
java.srcDir 'src/instrumentTest/Java'
}
}
Run Code Online (Sandbox Code Playgroud) 我将较旧的Android应用迁移到Android-Studio/Gradle.测试需求uiautomator-v18需要minSdkVersion=18.但是,我希望将minSdkVersion设置为15或16.
SO在同一件事上有很多问题,但我无法解决这个问题.
Exerpt AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.searcher"
android:versionCode="1"
android:versionName="0.0.1" >
<uses-sdk
tools:overrideLibrary="android.support.test.uiautomator.v18"/>
<!-- ... -->
</manifest>
Run Code Online (Sandbox Code Playgroud)
build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.searcher"
minSdkVersion 15
targetSdkVersion 23
testApplicationId "com.example.searcher.test"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile files('libs/dagger-1.2.1.jar')
compile files('libs/dagger-compiler-1.2.1.jar')
compile files('libs/javawriter-2.1.2.jar')
compile files('libs/javax.inject.jar')
androidTestCompile(
'com.android.support:support-annotations:23.2.0',
'com.android.support.test:runner:0.4.1',
'com.android.support.test:rules:0.4.1',
'com.android.support.test.uiautomator:uiautomator-v18:2.1.1',
'org.hamcrest:hamcrest-library:1.3',
'org.mockito:mockito-core:1.10.5',
'junit:junit:4.12',
'com.google.dexmaker:dexmaker:1.1',
'com.google.dexmaker:dexmaker-mockito:1.1'
)
}
Run Code Online (Sandbox Code Playgroud)
以上给出了错误:
Error:Execution failed for task ':app:processDebugAndroidTestManifest'.
> …Run Code Online (Sandbox Code Playgroud) 我刚刚将一个项目从 Exclipse 迁移到了 Android Studio。该build.gradle文件有一个部分,其中包括:
defaultConfig {
applicationId "com.example.someone.myapplication"
minSdkVersion 8
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)
同样的事情在uses-sdk的元素AndroidManifest.xml。
当两种设置同时存在时,哪些设置受到尊重?另外,我应该将它们从AndroidManifest.xml? 我的项目至少必须支持 Api-8。如果uses-sdk从清单文件中删除该部分,它对旧平台有什么影响吗?