这些是测试依赖项:
// tests
androidTestCompile 'org.mockito:mockito-all:1.10.8'
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.3.1'
androidTestCompile 'junit:junit:4.12'
androidTestCompile ('org.robolectric:robolectric:2.4') {
exclude module: 'commons-logging'
exclude module: 'httpclient'
}
我的debug
版本类型有minifyEnabled true
,因此我没有达到DEX方法限制。完整的建筑定义如下:
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 15
targetSdkVersion 22
versionName VERSION_NAME
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-rules.pro'
}
signingConfigs {
debug {
storeFile file('keystore/debug.keystore')
}
}
productFlavors {
develop {
versionCode versionBuild()
signingConfig signingConfigs.debug
proguardFile 'proguard-rules-debug.pro'
}
}
buildTypes {
debug {
minifyEnabled true
}
}
有一个默认的proguard-rules.pro
文件和另一个proguard-rules-debug.pro
的风格。
:proguardDevelopDebug
gradle任务根据我的选项成功通过。但是,:proguardDevelopDebugAndroidTest
失败并出现以下错误:http://pastebin.com/S623UGfP
这很奇怪,因为我在文件中添加了以下内容:
-dontobfuscate
# ------------------- TEST DEPENDENCIES -------------------
-dontwarn org.hamcrest.**
-dontwarn com.squareup.**
-dontwarn com.google.android.**
-keep class com.google.android.** {
*;
}
-keep class com.google.common.** {
*;
}
-keep class org.hamcrest.** {
*;
}
# Apache Maven
-keep class org.apache.maven.** { *; }
-dontwarn org.apache.maven.**
# Junit
-keep class org.junit.** { *; }
-dontwarn org.junit.**
# Mockito
-keep class org.mockito.** { *; }
-dontwarn org.mockito.**
# Robolectric
-keep class org.robolectric.** { *; }
-dontwarn org.robolectric.**
为什么这两个人不能一起工作的任何想法?