感觉就像我尝试了一切.每次我使导入工作没有任何编译器错误,都会遗漏一些类.我导入了所以我除了powermockrunner.class之外还有其他东西
并且我不知道如果没有它我将如何使用powerMock
这是我的gradle文件,因为它现在看起来像
apply plugin: 'android'
dependencies {
compile filetree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib')
compile project(':facebook-sdk_lib')
compile 'de.greenrobot:greendao:1.3.7'
compile ('com.google.dexmaker:dexmaker:1.1')
compile ('com.google.dexmaker:dexmaker-mockito:1.1'){
exclude group: 'org.hamcrest'
exclude group: 'org.javassist'
}
compile('junit:junit:4.4'){
exclude group: 'org.hamcrest'
}
compile('org.mockito:mockito-core:1.9.5'){
exclude group: 'org.hamcrest'
}
compile('org.powermock:powermock-api-mockito:1.4.12'){
exclude group: 'org.hamcrest'
}
}
android {
packagingOptions {
exclude 'meta-inf/ASL2.0'
exclude 'meta-inf/LICENSE'
exclude 'meta-inf/LICENSE.txt'
exclude 'meta-inf/NOTICE'
exclude 'meta-inf/NOTICE.txt'
}
compileSdkVersion 19
buildToolsversion "19.1.0"
lintOptions {
abortOnError false
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java {
srcDir 'src'
srcDir 'src-gen'
srcDir 'tests'
}
resources {
srcDir 'src'
srcDir 'src-gen'
}
aidl.srcDirs = ['src','src-gen']
renderscript.srcDirs = ['src','src-gen']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
androidTest.setRoot('tests')
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
这是编译器错误,我整天都被扔进了我的脸.
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lorg/hamcrest/Description;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
解决方法:
我昨天整天坐着弄清楚我应该如何解决这个问题.它现在已经解决了,这就是我用gradle.build文件解决问题的方法
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile filetree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib')
compile project(':facebook-sdk_lib')
compile ('de.greenrobot:greendao:1.3.7'){
exclude group: 'org.hamcrest'
}
androidTestCompile('org.mockito:mockito-core:1.9.5'){
exclude group: 'org.hamcrest'
}
androidTestCompile('org.powermock:powermock-module-junit4:1.5'){
exclude group: 'org.hamcrest'
}
}
android {
packagingOptions {
exclude 'meta-inf/ASL2.0'
exclude 'meta-inf/LICENSE'
exclude 'meta-inf/LICENSE.txt'
exclude 'meta-inf/NOTICE'
exclude 'meta-inf/NOTICE.txt'
}
compileSdkVersion 19
buildToolsversion "19.1.0"
lintOptions {
abortOnError false
}
sourceSets {
main
{
manifest.srcFile 'AndroidManifest.xml'
resources
{
srcDir 'src-gen'
}
aidl.srcDirs = ['src/main/java', 'src-gen']
renderscript.srcDirs = ['src/main/java', 'src-gen']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
java.srcDirs = ['src/main/java', 'src/main/java/', 'src-gen']
}
androidTest {
java.srcDirs = ['tests']
}
unitTest {
java.srcDir file('tests')
resources.srcDir file('tests/res')
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}//-End of sourceSet
} //-End of android
希望这可以帮助至少一个人不会陷入我通过的同一个gradle故障循环中.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。