我將我的Android項目遷移到gradle構建系統,我無法從我的Integration Test Android項目導入我的Android項目。使用gradle構建系統創建測試Android apk
我使用多個項目配置與幾個android庫,它的工作很好,但我有一個問題,建立我的測試項目與多項目設置。由於外部原因,我需要繼續使用這種結構。
MyProject/
| settings.gradle
+ MyApp/
| build.gradle
| src
| res
| libs
+ Instrumentation-Tests/
| build.gradle
| src
| res
| libs
我目前的配置文件看起來像:
settings.gradle:
include ':MyApp', 'Instrumentation-Tests'
MyAppp /的build.gradle:
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('.....jar')
compile project('....')
compile 'com.android.support:support-v4:13.0.+'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
最後我Instrumentation-Tests/build.gradle
:
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile project(':MyApp')
compile files('.....jar')
compile 'com.android.support:support-v4:13.0.+'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
當我運行gradle compileDebug
項目MyApp
正確編譯(和它的所有模塊),而是因爲它無法找到MyApp
定義了Android類Instrumentation-Tests
編譯失敗。
compile(project(':MyApp')) { transitive = true }
聲明的依賴時:
我讀過的文檔和很多帖子,但我不能使它工作,我也嘗試使用。
有沒有人有同樣的問題? 我想將MyApp
項目依賴項的輸出包含到Instrumentation-Tests
編譯的類路徑中,但我不知道是否可以使用android gradle
插件。
你讀過這樣的東西:http://stackoverflow.com/questions/16586409/how-can-i-create-tests-in-android-studio和這個:http://tools.android。 COM /科技的文檔/新構建系統/用戶指南#TOC-測試?我想知道你是否遵循了這些說明,但是如果它能適用於你當前的設置,就改變了源代碼集的位置。您可能需要指定與項目根目錄相關的測試源目錄。 – jDutton
我最終將所有移動到gradle結構,我也將我的所有儀器測試(單位和功能)移動到instrumentationTest文件夾內,並且一切正常! – David